DetailedSample sample = (DetailedSample) stock; aliquot.setScientificName(sample.getScientificName()); aliquot.setSampleType(sample.getSampleType());
private SampleIdentity createParentIdentity(DetailedSample sample, SampleIdentity identity) throws IOException, MisoNamingException, SQLException { log.debug("Creating a new Identity to use as a parent."); List<SampleClass> identityClasses = sampleClassService.listByCategory(SampleIdentity.CATEGORY_NAME); if (identityClasses.size() != 1) { throw new IllegalStateException("Found more or less than one SampleClass of category " + SampleIdentity.CATEGORY_NAME + ". Cannot choose which to use as root sample class."); } SampleClass rootSampleClass = identityClasses.get(0); confirmExternalNameUniqueForProjectIfRequired(identity.getExternalName(), sample); Sample identitySample = new IdentityBuilder().project(sample.getProject()) .sampleType(sample.getSampleType()).scientificName(sample.getScientificName()).name(generateTemporaryName()) .rootSampleClass(rootSampleClass).volume(0D).externalName(identity.getExternalName()) .donorSex(identity.getDonorSex()).consentLevel(identity.getConsentLevel()).build(); identitySample.setAlias(namingScheme.generateSampleAlias(identitySample)); identitySample.setChangeDetails(authorizationManager.getCurrentUser()); identitySample.inheritPermissions(sample.getProject()); return (SampleIdentity) save(identitySample, true); }
private DetailedSample createGhostParent(DetailedSample parent, DetailedSample child) throws IOException { parent.setProject(child.getProject()); parent.setSampleType(child.getSampleType()); parent.setScientificName(child.getScientificName()); parent.setVolume(0D); parent.setVolumeUnits(VolumeUnit.MICROLITRES); parent.setSynthetic(true); if (child.getIdentityId() != null) parent.setIdentityId(child.getIdentityId()); if (isLcmTubeSample(child)) { SampleSlide parentSlides = (SampleSlide) parent; Integer slides = parentSlides.getSlides() == null ? 0 : parentSlides.getSlides(); slides += ((SampleLCMTube) child).getSlidesConsumed(); parentSlides.setSlides(slides); parentSlides.setDiscards(0); if (parentSlides.getId() != SampleImpl.UNSAVED_ID) { update(parentSlides); } } create(parent); return parent; }