use of uk.ac.bbsrc.tgac.miso.core.data.Sample in project miso-lims by miso-lims.
the class RequisitionRestController method moveSamples.
@PostMapping("/{requisitionId}/samples/move")
@ResponseBody
public RequisitionDto moveSamples(@PathVariable long requisitionId, @RequestBody MoveSamplesRequest request) throws IOException {
List<Sample> samples = new ArrayList<>();
for (Long id : request.sampleIds) {
Sample sample = RestUtils.retrieve("Sample", id, sampleService, Status.BAD_REQUEST);
samples.add(sample);
}
Requisition requisition = null;
if (request.requisitionId != null) {
requisition = RestUtils.retrieve("Requisition", request.requisitionId, requisitionService, Status.BAD_REQUEST);
} else {
requisition = new Requisition();
requisition.setAlias(request.requisitionAlias);
Assay assay = new Assay();
assay.setId(request.assayId);
requisition.setAssay(assay);
requisition.setStopped(request.stopped);
}
Requisition saved = requisitionService.moveToRequisition(requisition, samples);
return RequisitionDto.from(saved);
}
use of uk.ac.bbsrc.tgac.miso.core.data.Sample in project miso-lims by miso-lims.
the class RequisitionRestController method addSamples.
private ObjectNode addSamples(Requisition requisition, List<Long> ids) throws IOException {
List<Sample> samples = new ArrayList<>();
for (Long id : ids) {
Sample sample = RestUtils.retrieve("Sample", id, sampleService, Status.BAD_REQUEST);
sample.setRequisition(requisition);
samples.add(sample);
}
return asyncOperationManager.startAsyncBulkUpdate("Sample", samples, sampleService);
}
use of uk.ac.bbsrc.tgac.miso.core.data.Sample in project miso-lims by miso-lims.
the class SampleRestController method bulkDelete.
@PostMapping(value = "/bulk-delete")
@ResponseBody
@ResponseStatus(HttpStatus.NO_CONTENT)
public void bulkDelete(@RequestBody(required = true) List<Long> ids) throws IOException {
List<Sample> samples = new ArrayList<>();
for (Long id : ids) {
if (id == null) {
throw new RestException("Cannot delete null sample", Status.BAD_REQUEST);
}
Sample sample = sampleService.get(id);
if (sample == null) {
throw new RestException("Sample " + id + " not found", Status.BAD_REQUEST);
}
samples.add(sample);
}
sampleService.bulkDelete(samples);
}
use of uk.ac.bbsrc.tgac.miso.core.data.Sample in project miso-lims by miso-lims.
the class EditSampleController method setupForm.
@GetMapping(value = "/{sampleId}")
public ModelAndView setupForm(@PathVariable Long sampleId, ModelMap model) throws IOException {
Sample sample = sampleService.get(sampleId);
if (sample == null)
throw new NotFoundException("No sample found for ID " + sampleId.toString());
model.put("title", "Sample " + sampleId);
model.put("previousSample", sampleService.getPreviousInProject(sample));
model.put("nextSample", sampleService.getNextInProject(sample));
model.put("sampleCategory", LimsUtils.isDetailedSample(sample) ? ((DetailedSample) sample).getSampleClass().getSampleCategory() : "plain");
List<LibraryDto> libraries = sample.isSaved() ? libraryService.listBySampleId(sample.getId()).stream().map(lib -> Dtos.asDto(lib, false)).collect(Collectors.toList()) : Collections.emptyList();
model.put("sampleLibraries", libraries);
Set<Pool> pools = libraries.stream().flatMap(WhineyFunction.flatRethrow(library -> poolService.listByLibraryId(library.getId()))).distinct().collect(Collectors.toSet());
List<RunDto> runDtos = pools.stream().flatMap(WhineyFunction.flatRethrow(pool -> runService.listByPoolId(pool.getId()))).map(Dtos::asDto).collect(Collectors.toList());
model.put("samplePools", pools.stream().map(p -> Dtos.asDto(p, false, false, indexChecker)).collect(Collectors.toList()));
model.put("sampleRuns", runDtos);
model.put("sampleRelations", getRelations(sample));
addArrayData(sampleId, model);
model.put("sampleTransfers", sample.getTransferViews().stream().map(Dtos::asDto).collect(Collectors.toList()));
model.put("sample", sample);
SampleDto sampleDto = Dtos.asDto(sample, false, libraries.size());
setRelatedSlideDtos(sample, sampleDto);
model.put("sampleDto", !sample.isSaved() ? "null" : mapper.writeValueAsString(sampleDto));
ObjectNode formConfig = mapper.createObjectNode();
formConfig.put("detailedSample", isDetailedSampleEnabled());
MisoWebUtils.addJsonArray(mapper, formConfig, "projects", projectService.list(), Dtos::asDto);
MisoWebUtils.addJsonArray(mapper, formConfig, Config.SOPS, sopService.listByCategory(SopCategory.SAMPLE), Dtos::asDto);
model.put("formConfig", mapper.writeValueAsString(formConfig));
return new ModelAndView("/WEB-INF/pages/editSample.jsp", model);
}
use of uk.ac.bbsrc.tgac.miso.core.data.Sample in project miso-lims by miso-lims.
the class WorksetRestController method removeSamples.
@DeleteMapping("/{worksetId}/samples")
@ResponseStatus(HttpStatus.NO_CONTENT)
public void removeSamples(@PathVariable(value = "worksetId", required = true) long worksetId, @RequestBody List<Long> sampleIds) throws IOException {
Workset workset = getWorkset(worksetId);
List<Sample> items = loadItems("Sample", sampleIds, sampleService);
worksetService.removeSamples(workset, items);
}
Aggregations