use of org.obiba.mica.search.reports.ReportGenerator in project mica2 by obiba.
the class PublishedNetworksSearchResource method export.
@POST
@Path("/_export")
@Produces(MediaType.APPLICATION_OCTET_STREAM)
public Response export(@FormParam("query") String query, @FormParam("locale") @DefaultValue("en") String locale) {
if (!micaConfigService.getConfig().isNetworksExportEnabled())
throw new BadRequestException("Networks export not enabled");
JoinQuery joinQuery = searcher.makeJoinQuery(query);
List<String> networkIds = joinQueryExecutor.query(QueryType.NETWORK, joinQuery).getNetworkResultDto().getExtension(MicaSearch.NetworkResultDto.result).getNetworksList().stream().map(Mica.NetworkDto::getId).collect(toList());
ReportGenerator reporter = new NetworkCsvReportGenerator(publishedNetworkService.findByIds(networkIds, true), Strings.isNullOrEmpty(locale) ? joinQuery.getLocale() : locale, personService);
StreamingOutput stream = reporter::write;
return Response.ok(stream).header("Content-Disposition", "attachment; filename=\"Networks.zip\"").build();
}
use of org.obiba.mica.search.reports.ReportGenerator in project mica2 by obiba.
the class PublishedNetworksSetResource method reportNetworks.
@GET
@Path("/documents/_report")
@Produces(MediaType.APPLICATION_OCTET_STREAM)
public Response reportNetworks(@PathParam("id") String id, @QueryParam("locale") @DefaultValue("en") String locale) {
DocumentSet documentSet = getSecuredDocumentSet(id);
ReportGenerator reporter = new NetworkCsvReportGenerator(networkSetService.getPublishedNetworks(documentSet, true), locale, personService);
StreamingOutput stream = reporter::write;
return Response.ok(stream).header("Content-Disposition", "attachment; filename=\"Networks.zip\"").build();
}
use of org.obiba.mica.search.reports.ReportGenerator in project mica2 by obiba.
the class PublishedStudiesSearchResource method export.
@POST
@Path("/_export")
@Produces(MediaType.APPLICATION_OCTET_STREAM)
public Response export(@FormParam("query") String query, @FormParam("locale") @DefaultValue("en") String locale) {
if (!micaConfigService.getConfig().isStudiesExportEnabled())
throw new BadRequestException("Studies export not enabled");
JoinQuery joinQuery = searcher.makeJoinQuery(query);
List<String> studyIds = joinQueryExecutor.query(QueryType.STUDY, joinQuery).getStudyResultDto().getExtension(MicaSearch.StudyResultDto.result).getSummariesList().stream().map(Mica.StudySummaryDto::getId).collect(toList());
ReportGenerator reporter = new StudyCsvReportGenerator(publishedStudyService.findByIds(studyIds, true), Strings.isNullOrEmpty(locale) ? joinQuery.getLocale() : locale, personService);
StreamingOutput stream = reporter::write;
return Response.ok(stream).header("Content-Disposition", "attachment; filename=\"Studies.zip\"").build();
}
use of org.obiba.mica.search.reports.ReportGenerator in project mica2 by obiba.
the class PublishedStudiesSetResource method reportStudies.
@GET
@Path("/documents/_report")
@Produces(MediaType.APPLICATION_OCTET_STREAM)
public Response reportStudies(@PathParam("id") String id, @QueryParam("locale") @DefaultValue("en") String locale) {
DocumentSet documentSet = getSecuredDocumentSet(id);
ReportGenerator reporter = new StudyCsvReportGenerator(studySetService.getPublishedStudies(documentSet, true), locale, personService);
StreamingOutput stream = reporter::write;
return Response.ok(stream).header("Content-Disposition", "attachment; filename=\"Studies.zip\"").build();
}
use of org.obiba.mica.search.reports.ReportGenerator in project mica2 by obiba.
the class StudyCsvReportGenerator method write.
@Override
public void write(OutputStream outputStream) {
try (ZipOutputStream zipOutputStream = new ZipOutputStream(outputStream)) {
zipOutputStream.putNextEntry(new ZipEntry("studies.csv"));
super.write(zipOutputStream);
zipOutputStream.putNextEntry(new ZipEntry("populations.csv"));
ReportGenerator reporter = new StudyPopulationCsvReportGenerator(studies, getLocale());
reporter.write(zipOutputStream);
zipOutputStream.putNextEntry(new ZipEntry("data-collection-events.csv"));
reporter = new StudyPopulationDCECsvReportGenerator(studies, getLocale());
reporter.write(zipOutputStream);
zipOutputStream.putNextEntry(new ZipEntry("persons.csv"));
for (int i = 0; i < studies.size(); i++) {
BaseStudy study = studies.get(i);
reporter = new PersonCsvReportGenerator(study.getId(), personService.getStudyMemberships(study.getId()), getLocale()) {
@Override
protected String getParentIdHeader() {
return "studyId";
}
@Override
protected List<Person.Membership> getMemberships(Person person) {
return person.getStudyMemberships();
}
};
reporter.write(zipOutputStream, i > 0);
}
} catch (IOException e) {
log.error("Error when reporting studies", e);
}
}
Aggregations