예제 #1
0
 public PatientsController(AspergillosisContext context, ExternalImportDbContext externalImport)
 {
     _patientManager             = new PatientManager(context, Request);
     _context                    = context;
     _listResolver               = new DropdownListsResolver(context, ViewBag);
     _caseReportFormListResolver = new CaseReportFormsDropdownResolver(context);
     _caseReportFormManager      = new CaseReportFormManager(context);
     _externalImport             = externalImport;
 }
예제 #2
0
        protected async Task <PatientDetailsViewModel> GetExportViewModel(int id)
        {
            var crfManager = new CaseReportFormManager(_context);
            var patient    = await _patientManager.FindPatientWithRelationsByIdAsync(id);

            var patientDetailsViewModel = PatientDetailsViewModel.BuildPatientViewModel(_context, patient, crfManager);

            SetItemsToShowInExport(patientDetailsViewModel);
            return(patientDetailsViewModel);
        }
예제 #3
0
 public PdfExportsController(IConverter dinkToPdfConverter,
                             IViewRenderService htmlRenderService,
                             IHostingEnvironment hostingEnvironment,
                             ApplicationDbContext _appContext,
                             UserManager <ApplicationUser> userManager,
                             AspergillosisContext context) : base(context, hostingEnvironment)
 {
     _pdfConverter          = new PatientDetailsPdfExporter(dinkToPdfConverter, htmlRenderService, hostingEnvironment);
     _fileStoragePath       = _hostingEnvironment.ContentRootPath + PatientDetailsPdfExporter.EXPORTED_PDFS_DIRECTORY;
     _userManager           = userManager;
     _caseReportFormManager = new CaseReportFormManager(context);
 }
예제 #4
0
 public CaseReportFormResultsController(AspergillosisContext context)
 {
     _context = context;
     _caseReportFormResolver = new CaseReportFormManager(context);
 }
 public CaseReportFormSectionsController(AspergillosisContext context)
 {
     _context  = context;
     _resolver = new CaseReportFormsDropdownResolver(context);
     _caseReportFormManager = new CaseReportFormManager(context);
 }
예제 #6
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);
        }