コード例 #1
0
            public async Task <ListModel <AT1ReportItemDTO> > Handle(GetAT1ReportQuery request, CancellationToken cancellationToken)
            {
                FilterSpec healthProfessionalFilter = null;
                FilterSpec oncologyPatientFilter    = null;
                FilterSpec dateFilter      = null;
                FilterSpec diagnosisFilter = null;

                if (request.Filters != null)
                {
                    request.Filters.TryGetValue(nameof(AmbulatoryAttentionRecord.HealthProfessionalId), out healthProfessionalFilter, caseSensitive: false);
                    request.Filters.TryGetValue(nameof(AmbulatoryAttentionRecord.OncologyPatientId), out oncologyPatientFilter, caseSensitive: false);
                    request.Filters.TryGetValue(nameof(AmbulatoryAttentionRecord.Date), out dateFilter, caseSensitive: false);
                    request.Filters.TryGetValue(nameof(AmbulatoryAttentionRecord.DiagnosisId), out diagnosisFilter, caseSensitive: false);
                }

                int dateValueFilter = dateFilter == null? DateTime.Now.DayOfYear : DateTime.Parse(dateFilter.SearchTerm).DayOfYear;
                Expression <Func <AmbulatoryAttentionRecord, bool> > predicate = i =>
                                                                                 (healthProfessionalFilter == null || i.HealthProfessionalId == int.Parse(healthProfessionalFilter.SearchTerm)) &&
                                                                                 (oncologyPatientFilter == null || i.OncologyPatientId == int.Parse(oncologyPatientFilter.SearchTerm)) &&
                                                                                 (dateFilter == null || i.Date.DayOfYear == dateValueFilter) &&
                                                                                 (diagnosisFilter == null || i.DiagnosisId == int.Parse(diagnosisFilter.SearchTerm));
                var defaultSort = BuildSortList <AmbulatoryAttentionRecord>(i => i.AmbulatoryAttentionRecordId);

                var bareResults = await RetrieveSearchResults <AmbulatoryAttentionRecord, AT1ReportItemDTO>(predicate, defaultSort, request, cancellationToken);

                return(await TapWithAgeValues(bareResults));
            }
コード例 #2
0
        public async Task <ActionResult> GetAmbulatoryAttentionReportFile([FromQuery] GetAT1ReportQuery request)
        {
            var report = await Mediator.Send(request);

            var columnInfoList = new List <ExcelColumnInfo <AT1ReportItemDTO> >()
            {
                new ExcelColumnInfo <AT1ReportItemDTO> {
                    Order = 10, Header = nameof(AT1ReportItemDTO.Date), Accessor = e => e.Date
                },
                new ExcelColumnInfo <AT1ReportItemDTO> {
                    Order = 10, Header = nameof(AT1ReportItemDTO.HealthProfessionalFullName), Accessor = e => e.HealthProfessionalFullName
                },
                new ExcelColumnInfo <AT1ReportItemDTO> {
                    Order = 10, Header = nameof(AT1ReportItemDTO.PatientPhysicalRecordNumber), Accessor = e => e.PatientPhysicalRecordNumber
                },
                new ExcelColumnInfo <AT1ReportItemDTO> {
                    Order = 10, Header = nameof(AT1ReportItemDTO.OncologyPatientFullName), Accessor = e => e.OncologyPatientFullName
                },
                new ExcelColumnInfo <AT1ReportItemDTO> {
                    Order = 10, Header = nameof(AT1ReportItemDTO.OncologyPatientGovernmentIDNumber), Accessor = e => e.OncologyPatientGovernmentIDNumber
                },
                new ExcelColumnInfo <AT1ReportItemDTO> {
                    Order = 10, Header = nameof(AT1ReportItemDTO.Gender), Accessor = e => e.Gender
                },
                new ExcelColumnInfo <AT1ReportItemDTO> {
                    Order = 10, Header = nameof(AT1ReportItemDTO.Birthdate), Accessor = e => e.Birthdate == null ? string.Empty : e.Birthdate.Value.ToShortDateString()
                },
                new ExcelColumnInfo <AT1ReportItemDTO> {
                    Order = 10, Header = nameof(AT1ReportItemDTO.AgeInYears), Accessor = e => e.AgeInYears
                },
                new ExcelColumnInfo <AT1ReportItemDTO> {
                    Order = 10, Header = nameof(AT1ReportItemDTO.AgeInMonthsOverYears), Accessor = e => e.AgeInMonthsOverYears
                },
                new ExcelColumnInfo <AT1ReportItemDTO> {
                    Order = 10, Header = nameof(AT1ReportItemDTO.AgeInDaysOverMonths), Accessor = e => e.AgeInDaysOverMonths
                },
                new ExcelColumnInfo <AT1ReportItemDTO> {
                    Order = 10, Header = nameof(AT1ReportItemDTO.IsNewPatient), Accessor = e => e.IsNewPatient ? "Sí" : "No"
                },
                new ExcelColumnInfo <AT1ReportItemDTO> {
                    Order = 10, Header = nameof(AT1ReportItemDTO.ProcedenceDivisionLevel2), Accessor = e => e.ProcedenceDivisionLevel2
                },
                new ExcelColumnInfo <AT1ReportItemDTO> {
                    Order = 10, Header = nameof(AT1ReportItemDTO.ProcedenceDivisionLevel3), Accessor = e => e.ProcedenceDivisionLevel3
                },
                new ExcelColumnInfo <AT1ReportItemDTO> {
                    Order = 10, Header = nameof(AT1ReportItemDTO.ProcedenceDivisionLevel4), Accessor = e => e.ProcedenceDivisionLevel4
                },

                new ExcelColumnInfo <AT1ReportItemDTO> {
                    Order = 10, Header = nameof(AT1ReportItemDTO.DiagnosisName), Accessor = e => e.DiagnosisName
                },
                new ExcelColumnInfo <AT1ReportItemDTO> {
                    Order = 10, Header = nameof(AT1ReportItemDTO.DiseaseEventDescription), Accessor = e => e.DiseaseEventDescription
                },
                new ExcelColumnInfo <AT1ReportItemDTO> {
                    Order = 10, Header = nameof(AT1ReportItemDTO.TreatmentPhase), Accessor = e => e.TreatmentPhase
                },
                new ExcelColumnInfo <AT1ReportItemDTO> {
                    Order = 10, Header = nameof(AT1ReportItemDTO.NextAppointmentDate), Accessor = e => e.NextAppointmentDate == null ? string.Empty:e.NextAppointmentDate.Value.ToShortDateString()
                },
                new ExcelColumnInfo <AT1ReportItemDTO> {
                    Order = 10, Header = nameof(AT1ReportItemDTO.ReferredTo), Accessor = e => e.ReferredTo
                },
                new ExcelColumnInfo <AT1ReportItemDTO> {
                    Order = 10, Header = nameof(AT1ReportItemDTO.ReceivedFrom), Accessor = e => e.ReceivedFrom
                },
            };
            var excelFile = await ExcelFileExporter.ExportForWeb("report.xlsx", columnInfoList, report.Items);

            return(File(
                       fileContents: excelFile,
                       contentType: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
                       fileDownloadName: "report.xlsx"
                       ));
        }
コード例 #3
0
 public async Task <ActionResult <ListModel <AT1ReportItemDTO> > > GetReport([FromQuery] GetAT1ReportQuery request)
 {
     return(Ok(await Mediator.Send(request)));
 }