use of gov.nih.nci.ctd2.dashboard.util.DateTransformer in project nci-ctd2-dashboard by CBIIT.
the class StoriesController method getSearchResultsInJson.
@Transactional
@RequestMapping(method = { RequestMethod.POST, RequestMethod.GET }, headers = "Accept=application/json")
public ResponseEntity<String> getSearchResultsInJson(@RequestParam("limit") Integer limit) {
HttpHeaders headers = new HttpHeaders();
headers.add("Content-Type", "application/json; charset=utf-8");
ArrayList<Observation> entities = new ArrayList<Observation>();
// If no limit, then show everything
if (limit == -1)
limit = Integer.MAX_VALUE;
for (Submission submission : dashboardDao.findSubmissionByIsStory(true, true)) {
List<Observation> observationsBySubmission = dashboardDao.findObservationsBySubmission(submission);
// Story submissions have a single observation in them
assert observationsBySubmission.size() == 1;
entities.addAll(observationsBySubmission);
}
Collections.sort(entities, new Comparator<Observation>() {
@Override
public int compare(Observation o1, Observation o2) {
Integer rank1 = o1.getSubmission().getObservationTemplate().getSubmissionStoryRank();
Integer rank2 = o2.getSubmission().getObservationTemplate().getSubmissionStoryRank();
return rank1 - rank2;
}
});
/*
entities.sort(new Comparator<Observation>() {
@Override
public int compare(Observation o1, Observation o2) {
Integer rank1 = o1.getSubmission().getObservationTemplate().getSubmissionStoryRank();
Integer rank2 = o2.getSubmission().getObservationTemplate().getSubmissionStoryRank();
return rank1-rank2;
}
});
*/
JSONSerializer jsonSerializer = new JSONSerializer().transform(new ImplTransformer(), Class.class).transform(new DateTransformer(), Date.class);
return new ResponseEntity<String>(jsonSerializer.serialize(entities.subList(0, Math.min(limit, entities.size()))), headers, HttpStatus.OK);
}
use of gov.nih.nci.ctd2.dashboard.util.DateTransformer in project nci-ctd2-dashboard by CBIIT.
the class JSONController method getEntityInJson.
@Transactional
@RequestMapping(value = "{type}/{id}", method = { RequestMethod.GET, RequestMethod.POST }, headers = "Accept=application/json")
public ResponseEntity<String> getEntityInJson(@PathVariable String type, @PathVariable String id) {
DashboardEntity entityById = null;
Class<? extends DashboardEntity> clazz = Subject.class;
if (type.equalsIgnoreCase("subject")) {
clazz = Subject.class;
} else if (type.equals("observedsubject")) {
clazz = ObservedSubject.class;
}
HttpHeaders headers = new HttpHeaders();
headers.add("Content-Type", "application/json; charset=utf-8");
log.debug("JSONController " + type + " " + id);
if (typesWithStableURL.contains(type)) {
String stableURL = type + "/" + id;
if (type.equals("observedevidence"))
stableURL = "mra/" + id;
entityById = dashboardDao.getEntityByStableURL(type, stableURL);
} else {
entityById = dashboardDao.getEntityById(clazz, Integer.parseInt(id));
}
if (entityById == null) {
return new ResponseEntity<String>(headers, HttpStatus.NOT_FOUND);
}
JSONSerializer jsonSerializer = new JSONSerializer().transform(new ImplTransformer(), Class.class).transform(new DateTransformer(), Date.class);
return new ResponseEntity<String>(jsonSerializer.deepSerialize(entityById), headers, HttpStatus.OK);
}
use of gov.nih.nci.ctd2.dashboard.util.DateTransformer in project nci-ctd2-dashboard by CBIIT.
the class ListController method getSearchResultsInJson.
@Transactional
@RequestMapping(value = "{type}", method = { RequestMethod.GET, RequestMethod.POST }, headers = "Accept=application/json")
public ResponseEntity<String> getSearchResultsInJson(@PathVariable String type, @RequestParam(value = "filterBy", required = false) Integer filterBy, @RequestParam(value = "getAll", required = false, defaultValue = "false") Boolean getAll) {
HttpHeaders headers = new HttpHeaders();
headers.add("Content-Type", "application/json; charset=utf-8");
List<? extends DashboardEntity> entities = webServiceUtil.getDashboardEntities(type, filterBy);
if (!getAll && entities.size() > getMaxNumberOfEntities()) {
entities = entities.subList(0, getMaxNumberOfEntities());
}
JSONSerializer jsonSerializer = new JSONSerializer().transform(new ImplTransformer(), Class.class).transform(new DateTransformer(), Date.class);
return new ResponseEntity<String>(jsonSerializer.serialize(entities), headers, HttpStatus.OK);
}
use of gov.nih.nci.ctd2.dashboard.util.DateTransformer in project nci-ctd2-dashboard by CBIIT.
the class OntologySearchController method searchExtraSubmissions.
@RequestMapping(value = "extra-submissions", method = { RequestMethod.GET }, headers = "Accept=application/json")
public ResponseEntity<String> searchExtraSubmissions(@RequestParam("subject-name") String subjectName) {
HttpHeaders headers = new HttpHeaders();
headers.add("Content-Type", "application/json; charset=utf-8");
try {
List<SubmissionResult> submission_result = dashboardDao.getSubmissionsForSubjectName(subjectName).stream().map(submission -> {
ObservationTemplate template = submission.getObservationTemplate();
return new SearchResults.SubmissionResult(submission.getStableURL(), submission.getSubmissionDate(), template.getDescription(), template.getTier(), template.getSubmissionCenter().getDisplayName(), submission.getId(), dashboardDao.findObservationsBySubmission(submission).size(), template.getIsSubmissionStory());
}).collect(Collectors.toList());
JSONSerializer jsonSerializer = new JSONSerializer().transform(new ImplTransformer(), Class.class).transform(new DateTransformer(), Date.class);
return new ResponseEntity<String>(jsonSerializer.deepSerialize(submission_result), headers, HttpStatus.OK);
} catch (Exception e) {
e.printStackTrace();
return new ResponseEntity<String>(headers, HttpStatus.NOT_FOUND);
}
}
use of gov.nih.nci.ctd2.dashboard.util.DateTransformer in project nci-ctd2-dashboard by CBIIT.
the class OntologySearchController method ontologySearch.
@RequestMapping(method = { RequestMethod.GET }, headers = "Accept=application/json")
public ResponseEntity<String> ontologySearch(@RequestParam("terms") String terms) {
HttpHeaders headers = new HttpHeaders();
headers.add("Content-Type", "application/json; charset=utf-8");
SearchResults ontologyResult = dashboardDao.ontologySearch(terms.replaceAll("`", "'"));
log.debug("number of subject results from ontology search " + ontologyResult.numberOfSubjects());
JSONSerializer jsonSerializer = new JSONSerializer().transform(new ImplTransformer(), Class.class).transform(new DateTransformer(), Date.class);
return new ResponseEntity<String>(jsonSerializer.deepSerialize(ontologyResult), headers, HttpStatus.OK);
}
Aggregations