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)); }
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" )); }
public async Task <ActionResult <ListModel <AT1ReportItemDTO> > > GetReport([FromQuery] GetAT1ReportQuery request) { return(Ok(await Mediator.Send(request))); }