use of uk.ac.bbsrc.tgac.miso.dto.Dtos in project miso-lims by miso-lims.
the class EditInstrumentController method viewInstrument.
@GetMapping("/{instrumentId}")
public ModelAndView viewInstrument(@PathVariable(value = "instrumentId") Long instrumentId, ModelMap model) throws IOException {
Instrument instrument = instrumentService.get(instrumentId);
if (instrument == null) {
throw new NotFoundException("No instrument found for ID " + instrumentId.toString());
}
model.put("title", "Instrument " + instrument.getId());
Collection<ServiceRecord> serviceRecords = serviceRecordService.listByInstrument(instrumentId);
model.put("serviceRecords", serviceRecords.stream().map(Dtos::asDto).collect(Collectors.toList()));
return setupForm(instrument, model);
}
use of uk.ac.bbsrc.tgac.miso.dto.Dtos in project miso-lims by miso-lims.
the class EditLibraryAliquotController method edit.
@GetMapping("/{aliquotId}")
public ModelAndView edit(ModelMap model, @PathVariable long aliquotId) throws IOException {
LibraryAliquot aliquot = libraryAliquotService.get(aliquotId);
if (aliquot == null) {
throw new NotFoundException("Library aliquot not found");
}
model.put("title", "Library Aliquot " + aliquot.getId());
ObjectMapper mapper = new ObjectMapper();
model.put("aliquot", aliquot);
model.put("aliquotDto", mapper.writeValueAsString(Dtos.asDto(aliquot, false)));
List<Pool> pools = poolService.listByLibraryAliquotId(aliquotId);
model.put("aliquotPools", pools.stream().map(p -> Dtos.asDto(p, false, false, indexChecker)).collect(Collectors.toList()));
model.put("aliquotRuns", pools.stream().flatMap(WhineyFunction.flatRethrow(p -> runService.listByPoolId(p.getId()))).map(Dtos::asDto).collect(Collectors.toList()));
model.put("aliquotTransfers", aliquot.getTransferViews().stream().map(Dtos::asDto).collect(Collectors.toList()));
return new ModelAndView("/WEB-INF/pages/editLibraryAliquot.jsp", model);
}
use of uk.ac.bbsrc.tgac.miso.dto.Dtos in project miso-lims by miso-lims.
the class EditLibraryController method setupForm.
@GetMapping(value = "/{libraryId}")
public ModelAndView setupForm(@PathVariable Long libraryId, ModelMap model) throws IOException {
Library library = libraryService.get(libraryId);
if (library == null)
throw new NotFoundException("No library found for ID " + libraryId.toString());
model.put("title", "Library " + library.getId());
model.put("library", library);
addAdjacentLibraries(library, model);
Collection<Pool> pools = poolService.listByLibraryId(library.getId());
model.put("libraryPools", pools.stream().map(p -> Dtos.asDto(p, false, false, indexChecker)).collect(Collectors.toList()));
model.put("libraryRuns", pools.stream().flatMap(WhineyFunction.flatRethrow(p -> runService.listByPoolId(p.getId()))).map(Dtos::asDto).collect(Collectors.toList()));
model.put("libraryAliquots", library.getLibraryAliquots().stream().map(ldi -> Dtos.asDto(ldi, false)).collect(Collectors.toList()));
ObjectMapper mapper = new ObjectMapper();
ObjectNode config = mapper.createObjectNode();
config.putPOJO("library", Dtos.asDto(library, false));
model.put("libraryAliquotsConfig", mapper.writeValueAsString(config));
model.put("experiments", experimentService.listAllByLibraryId(library.getId()).stream().map(exp -> Dtos.asDto(exp)).collect(Collectors.toList()));
model.put("libraryDto", mapper.writeValueAsString(Dtos.asDto(library, false)));
if (LimsUtils.isDetailedLibrary(library)) {
DetailedLibrary detailed = (DetailedLibrary) library;
SampleIdentity identity = getParent(SampleIdentity.class, (DetailedSample) detailed.getSample());
model.put("effectiveExternalNames", identity.getExternalName());
}
model.put("libraryTransfers", library.getTransferViews().stream().map(Dtos::asDto).collect(Collectors.toList()));
ObjectNode formConfig = mapper.createObjectNode();
formConfig.put("detailedSample", isDetailedSampleEnabled());
addJsonArray(mapper, formConfig, "workstations", workstationService.list(), Dtos::asDto);
addJsonArray(mapper, formConfig, "thermalCyclers", instrumentService.listByType(InstrumentType.THERMAL_CYCLER), Dtos::asDto);
addJsonArray(mapper, formConfig, "sops", sopService.listByCategory(SopCategory.LIBRARY), Dtos::asDto);
model.put("formConfig", mapper.writeValueAsString(formConfig));
return new ModelAndView("/WEB-INF/pages/editLibrary.jsp", model);
}
use of uk.ac.bbsrc.tgac.miso.dto.Dtos in project miso-lims by miso-lims.
the class EditRunController method setupForm.
public ModelAndView setupForm(Run run, ModelMap model) throws IOException {
if (run.getId() == Run.UNSAVED_ID) {
model.put("title", "New Run");
model.put("multiplexed", false);
model.put("metrics", "[]");
model.put("partitionNames", "[]");
} else {
model.put("title", "Run " + run.getId());
model.put("metrics", getSources().filter(Objects::nonNull).map(source -> source.fetchMetrics(run)).filter(metrics -> !isStringBlankOrNull(metrics)).collect(new JsonArrayCollector()));
if (run.getSequencerPartitionContainers().size() == 1) {
ObjectMapper mapper = new ObjectMapper();
model.put("partitionNames", mapper.writeValueAsString(run.getSequencerPartitionContainers().get(0).getPartitions().stream().sorted(Comparator.comparing(Partition::getPartitionNumber)).map(partition -> partition.getPool() == null ? "N/A" : partition.getPool().getAlias()).collect(Collectors.toList())));
} else {
model.put("partitionNames", "[]");
}
model.put("runReportLinks", externalUriBuilder.getUris(run));
}
model.put("runPositions", run.getRunPositions().stream().map(Dtos::asDto).collect(Collectors.toList()));
model.put("runPartitions", run.getSequencerPartitionContainers().stream().flatMap(container -> container.getPartitions().stream()).map(WhineyFunction.rethrow(partition -> {
PartitionDto dto = Dtos.asDto(partition, false, indexChecker);
RunPartition runPartition = runPartitionService.get(run, partition);
if (runPartition != null) {
if (runPartition.getQcType() != null) {
dto.setQcType(runPartition.getQcType().getId());
dto.setQcNotes(runPartition.getNotes());
}
if (runPartition.getPurpose() != null) {
dto.setRunPurposeId(runPartition.getPurpose().getId());
}
} else {
dto.setQcNotes("");
}
return dto;
})).collect(Collectors.toList()));
model.put("runAliquots", getRunAliquots(run));
MisoWebUtils.addIssues(issueTrackerManager, () -> issueTrackerManager.searchIssues(run.getAlias()), model);
model.put("run", run);
ObjectMapper mapper = new ObjectMapper();
ObjectNode partitionConfig = mapper.createObjectNode();
partitionConfig.put("platformType", run.getPlatformType().name());
partitionConfig.put("instrumentModelId", run.getSequencer().getInstrumentModel().getId());
partitionConfig.put("runId", run.getId());
partitionConfig.put("isFull", run.isFull());
partitionConfig.put("showContainer", true);
partitionConfig.put("sequencingParametersId", run.getSequencingParameters() == null ? 0 : run.getSequencingParameters().getId());
partitionConfig.put("showPool", true);
model.put("partitionConfig", mapper.writeValueAsString(partitionConfig));
model.put("experiments", experimentService.listAllByRunId(run.getId()).stream().map(expt -> Dtos.asDto(expt)).collect(Collectors.toList()));
ObjectNode experimentConfig = mapper.createObjectNode();
experimentConfig.put("runId", run.getId());
model.put("experimentConfiguration", mapper.writeValueAsString(experimentConfig));
model.put("runDto", mapper.writeValueAsString(Dtos.asDto(run)));
ObjectNode formConfig = mapper.createObjectNode();
User user = authorizationManager.getCurrentUser();
formConfig.put("isAdmin", user.isAdmin());
formConfig.put("isRunReviewer", user.isRunReviewer() || user.isAdmin());
MisoWebUtils.addJsonArray(mapper, formConfig, "sops", sopService.listByCategory(SopCategory.RUN), Dtos::asDto);
model.put("formConfig", mapper.writeValueAsString(formConfig));
return new ModelAndView("/WEB-INF/pages/editRun.jsp", model);
}
use of uk.ac.bbsrc.tgac.miso.dto.Dtos in project miso-lims by miso-lims.
the class EditSequencerPartitionContainerController method setupForm.
private ModelAndView setupForm(SequencerPartitionContainer container, ModelMap model) throws IOException {
model.put("container", container);
model.put("containerPartitions", container.getPartitions().stream().map(partition -> Dtos.asDto(partition, false, indexChecker)).collect(Collectors.toList()));
model.put("containerRuns", runService.listByContainerId(container.getId()).stream().map(Dtos::asDto).collect(Collectors.toList()));
ObjectMapper mapper = new ObjectMapper();
model.put("containerJSON", mapper.writer().writeValueAsString(Dtos.asDto(container, indexChecker)));
model.put("poreVersions", containerService.listPoreVersions());
return new ModelAndView("/WEB-INF/pages/editSequencerPartitionContainer.jsp", model);
}
Aggregations