@Override protected Object formBackingObject(HttpServletRequest request) throws Exception { ReviewAeReportCommand command = new ReviewAeReportCommand(expeditedAdverseEventReportDao, reportDao); String aeReportId = request.getParameter("aeReport"); String reportId = request.getParameter("report"); ExpeditedAdverseEventReport aeReport = expeditedAdverseEventReportDao.getById(Integer.parseInt(aeReportId)); Report report = reportDao.getById(Integer.parseInt(reportId)); if (report.isWorkflowEnabled() && report.getLastVersion().getReportStatus().equals(ReportStatus.COMPLETED) && report.getWorkflowId() != null) { User user = workflowService.findCoordinatingCenterReviewer(report.getWorkflowId()); if (user != null) { Reporter r = new Reporter(); r.copy(user); aeReport.setReviewer(r); } } else { aeReport.setReviewer(aeReport.getReporter()); } String xml = adeersReportGenerator.generateCaaersXml(aeReport, report); String pngOutFile = WebUtils.getBaseFileName(aeReportId, reportId); // CAAERS-5904, see report as per the report definition format List<String> list = adeersReportGenerator.generateImage(xml, tempDir + File.separator + pngOutFile, report); command.addFiles(aeReportId, reportId, list); if (reportId != null && !reportId.equals("") && !reportId.equals("null")) command.setReportId(Integer.parseInt(reportId)); else command.setReportId(null); // (CAAERS-5865)to perform sync only for ctep-esys studies, // set studyOutOfSync to false, so sync will not run for non-ctep-esys studies if (aeReport.getStudy().getCtepEsysIdentifier() == null) { command.setStudyOutOfSync(false); } command.setAeReport(aeReport); for (Report r : aeReport.getReports()) { if (r.getId().equals(Integer.parseInt(reportId))) command.setWorkflowEnabled(r.getReportDefinition().getWorkflowEnabled()); } return command; }