use of com.odysseusinc.arachne.portal.model.SubmissionInsight in project ArachneCentralAPI by OHDSI.
the class BaseAnalysisController method addSubmissionInsight.
@ApiOperation("Create submission insight")
@RequestMapping(value = "/api/v1/analysis-management/submissions/{submissionId}/insight", method = POST)
public JsonResult<SubmissionInsightDTO> addSubmissionInsight(@PathVariable("submissionId") Long submissionId, @RequestBody @Valid SubmissionInsightDTO insightDTO) throws AlreadyExistException, NotExistException {
final SubmissionInsight insight = conversionService.convert(insightDTO, SubmissionInsight.class);
final SubmissionInsight savedInsight = submissionInsightService.createSubmissionInsight(submissionId, insight);
final SubmissionInsightDTO savedInsightDTO = conversionService.convert(savedInsight, SubmissionInsightDTO.class);
final JsonResult<SubmissionInsightDTO> result = new JsonResult<>(NO_ERROR);
result.setResult(savedInsightDTO);
return result;
}
use of com.odysseusinc.arachne.portal.model.SubmissionInsight in project ArachneCentralAPI by OHDSI.
the class BaseAnalysisController method getSubmissionInsight.
@ApiOperation("Get submission insight")
@RequestMapping(value = "/api/v1/analysis-management/submissions/{submissionId}/insight", method = GET)
public JsonResult<SubmissionInsightDTO> getSubmissionInsight(@PathVariable("submissionId") Long submissionId, @RequestParam(value = "size", required = false) Integer size, @RequestParam(value = "order", required = false) Sort.Direction order) throws NotExistException {
if (size == null) {
size = Integer.MAX_VALUE;
}
if (order == null) {
order = Sort.Direction.ASC;
}
final SubmissionInsight insight = submissionInsightService.getSubmissionInsight(submissionId);
final SubmissionInsightDTO insightDTO = conversionService.convert(insight, SubmissionInsightDTO.class);
final Set<CommentTopic> recentTopics = submissionInsightService.getInsightComments(insight, size, Sort.by(order, "id"));
final List<Commentable> recentCommentables = getRecentCommentables(conversionService, recentTopics, insightDTO);
insightDTO.setRecentCommentEntities(recentCommentables);
final JsonResult<SubmissionInsightDTO> result = new JsonResult<>(NO_ERROR);
result.setResult(insightDTO);
return result;
}
use of com.odysseusinc.arachne.portal.model.SubmissionInsight in project ArachneCentralAPI by OHDSI.
the class BaseStudyController method getStudyInsights.
@ApiOperation("Get recent Insights of Study")
@RequestMapping(value = "/api/v1/study-management/studies/{studyId}/insights", method = GET)
public List<SubmissionInsightDTO> getStudyInsights(@PathVariable("studyId") Long studyId, @RequestParam(value = "size", required = false) Integer size, @RequestParam(value = "commentsPerInsight", required = false) Integer commentsPerInsight, @RequestParam(value = "order", required = false) Sort.Direction order) {
if (size == null) {
size = Integer.MAX_VALUE;
}
if (commentsPerInsight == null) {
commentsPerInsight = Integer.MAX_VALUE;
}
if (order == null) {
order = Sort.Direction.DESC;
}
List<SubmissionInsightDTO> submissionInsightDTOS = new ArrayList<>();
Pageable pageRequest = PageRequest.of(0, size, Sort.by(order, "created"));
final Page<SubmissionInsight> page = submissionInsightService.getInsightsByStudyId(studyId, pageRequest);
final List<SubmissionInsight> insights = page.getContent();
for (int i = 0; i < insights.size(); i++) {
final SubmissionInsight insight = insights.get(i);
final Set<CommentTopic> recentTopics = submissionInsightService.getInsightComments(insight, commentsPerInsight, Sort.by(Sort.Direction.DESC, "id"));
final SubmissionInsightDTO insightDTO = conversionService.convert(insight, SubmissionInsightDTO.class);
final List<Commentable> recentCommentables = getRecentCommentables(conversionService, recentTopics, insightDTO);
insightDTO.setRecentCommentEntities(recentCommentables);
submissionInsightDTOS.add(insightDTO);
}
if (LOG.isDebugEnabled()) {
submissionInsightDTOS.stream().forEach(submissionInsightDTO -> {
LOG.debug("+" + submissionInsightDTO.getName());
submissionInsightDTO.getRecentCommentEntities().stream().forEach(commentable -> {
LOG.debug("|+" + commentable.getName());
commentable.getTopic().getComments().stream().forEach(commentDTO -> {
LOG.debug(" |-" + commentDTO.getAuthor().getFirstname() + ":" + commentDTO.getDate() + ":" + commentDTO.getComment());
});
});
});
}
return submissionInsightDTOS;
}
use of com.odysseusinc.arachne.portal.model.SubmissionInsight in project ArachneCentralAPI by OHDSI.
the class BaseSubmissionInsightServiceImpl method updateSubmissionInsight.
@Override
@PreAuthorize("hasPermission(#submissionId, 'Submission', " + "T(com.odysseusinc.arachne.portal.security.ArachnePermission).EDIT_INSIGHT)")
public SubmissionInsight updateSubmissionInsight(Long submissionId, SubmissionInsight insight) throws NotExistException {
LOGGER.info(UPDATING_INSIGHT_LOG, submissionId);
final SubmissionInsight exist = submissionInsightRepository.findOneBySubmissionId(submissionId);
throwNotExistExceptionIfNull(exist, submissionId);
if (insight.getName() != null) {
exist.setName(insight.getName());
}
if (insight.getDescription() != null) {
exist.setDescription(insight.getDescription());
}
return submissionInsightRepository.save(exist);
}
use of com.odysseusinc.arachne.portal.model.SubmissionInsight in project ArachneCentralAPI by OHDSI.
the class BaseSubmissionInsightServiceImpl method getSubmissionInsight.
@Override
@PostAuthorize("@ArachnePermissionEvaluator.addPermissions(principal, returnObject )")
public SubmissionInsight getSubmissionInsight(Long submissionId) throws NotExistException {
final SubmissionInsight insight = submissionInsightRepository.findOneBySubmissionId(submissionId);
throwNotExistExceptionIfNull(insight, submissionId);
return insight;
}
Aggregations