@RolesAllowed("user") @Transactional(readOnly = false) public Long copyAndResizePixels(long pixelsId, Integer sizeX, Integer sizeY, Integer sizeZ, Integer sizeT, List<Integer> channelList, String methodology, boolean copyStats) { Pixels from = retrievePixDescription(pixelsId); Pixels to = _copyAndResizePixels(pixelsId, sizeX, sizeY, sizeZ, sizeT, channelList, methodology, copyStats); // Deal with Image linkage Image image = from.getImage(); image.addPixels(to); // Save and return our newly created Pixels Id image = iUpdate.saveAndReturnObject(image); return image.getPixels(image.sizeOfPixels() - 1).getId(); }
@Override @RolesAllowed("user") public RenderingDef retrieveRndSettingsFor(long pixId, long userId) { List<IObject> list = retrieveAllRndSettings(pixId, userId); if (list == null || list.size() == 0) return null; return (RenderingDef) list.get(0); }
List<Integer> channelList, String methodology, boolean copyStats) Pixels from = retrievePixDescription(pixelsId); Pixels to = new Pixels(); outOfBoundsCheck(sizeX, "sizeX"); outOfBoundsCheck(sizeY, "sizeY"); outOfBoundsCheck(sizeZ, "sizeZ"); outOfBoundsCheck(sizeT, "sizeT"); channelOutOfBounds(channelList, "channel", from); copyChannel(channel, from, to, copyStats); copyChannel(channel, from, to, copyStats);
pixels.setSizeT(sizeT); pixels.setSha1("Pending..."); pixels.setDimensionOrder(getEnumeration(DimensionOrder.class, DimensionOrder.VALUE_XYZCT)); List<Channel> channels = createChannels(channelList); for(Channel channel : channels) pixels.addChannel(channel);
@Override @RolesAllowed("user") public RenderingDef retrieveRndSettings(long pixId) { Long userId = sec.getEffectiveUID(); RenderingDef rd = retrieveRndSettingsFor(pixId, userId); if (rd == null) { final EventContext ec = this.sec.getEventContext(false); final Pixels pixelsObj = this.iQuery.get(Pixels.class, pixId); final boolean isGraphCritical = this.sec.isGraphCritical(pixelsObj.getDetails()); long pixOwner = pixelsObj.getDetails().getOwner().getId(); long currentUser = ec.getCurrentUserId(); if (currentUser != pixOwner) { rd = retrieveRndSettingsFor(pixId, pixOwner); } } return rd; }
@RolesAllowed("user") @Transactional(readOnly = false) public void setChannelGlobalMinMax(long pixelsId, int channelIndex, double min, double max) { Pixels pixels = retrievePixDescription(pixelsId); Channel channel = pixels.getChannel(channelIndex); StatsInfo stats = channel.getStatsInfo(); if (stats == null) { stats = new StatsInfo(); channel.setStatsInfo(stats); } stats.setGlobalMax(max); stats.setGlobalMin(min); iUpdate.saveAndReturnObject(channel); }
@RolesAllowed("user") @Transactional(readOnly = false) public Long copyAndResizeImage(long imageId, Integer sizeX, Integer sizeY, Integer sizeZ, Integer sizeT, List<Integer> channelList, String name, boolean copyStats) { Image iFrom = iQuery.get(Image.class, imageId); Image iTo = new Image(); // Set the image name iTo.setAcquisitionDate(iFrom.getAcquisitionDate()); iTo.setName(name); iTo.setObjectiveSettings(iFrom.getObjectiveSettings()); iTo.setImagingEnvironment(iFrom.getImagingEnvironment()); iTo.setExperiment(iFrom.getExperiment()); iTo.setStageLabel(iFrom.getStageLabel()); iTo.setInstrument(iFrom.getInstrument()); // Copy each Pixels set that the source image has Iterator<Pixels> i = iFrom.iteratePixels(); while (i.hasNext()) { Pixels p = i.next(); Pixels to = _copyAndResizePixels(p.getId(), sizeX, sizeY, sizeZ, sizeT, channelList, null, copyStats); iTo.addPixels(to); } // Save and return our newly created Image Id iTo = iUpdate.saveAndReturnObject(iTo); return iTo.getId(); }