public static ConsentLevel getIdentityConsentLevel(DetailedSample sample) { SampleIdentity identity = null; if (isIdentitySample(sample)) { identity = (SampleIdentity) sample; } else { identity = LimsUtils.getParent(SampleIdentity.class, sample); } if (identity != null && identity.getConsentLevel() != null) { return identity.getConsentLevel(); } return null; }
private static SampleIdentityDto asIdentitySampleDto(@Nonnull SampleIdentity from) { SampleIdentityDto dto = new SampleIdentityDto(); dto.setExternalName(from.getExternalName()); dto.setDonorSex(from.getDonorSex().getLabel()); if (from.getConsentLevel() != null) { dto.setConsentLevel(from.getConsentLevel().getLabel()); // set here too, so it can be checked consistently for all DetailedSampleDtos dto.setIdentityConsentLevel(from.getConsentLevel().getLabel()); } return dto; }
private void applyIdentityChanges(SampleIdentity target, SampleIdentity source) throws IOException { if (!source.getExternalName().equals(target.getExternalName())) { confirmExternalNameUniqueForProjectIfRequired(source.getExternalName(), target); Set<String> sourceExternalNames = SampleIdentityImpl.getSetFromString(source.getExternalName()); Set<String> targetExternalNames = SampleIdentityImpl.getSetFromString(target.getExternalName()); if (!sourceExternalNames.containsAll(targetExternalNames) || !targetExternalNames.containsAll(sourceExternalNames)) { target.setExternalName(source.getExternalName()); } } target.setDonorSex(source.getDonorSex()); target.setConsentLevel(source.getConsentLevel()); }
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); }