public void validateSamplesToUpdate(Document document) { List<Document> samples = (List) document.get("samples"); if (samples != null) { // We make sure we don't store duplicates Map<Long, Sample> sampleMap = new HashMap<>(); for (Document sample : samples) { long id = sample.getInteger("uid").longValue(); int version = sample.getInteger("version"); if (id > 0) { Sample tmpSample = new Sample() .setVersion(version); tmpSample.setUid(id); sampleMap.put(id, tmpSample); } } document.put("samples", sampleMap.entrySet().stream() .map(entry -> new Document() .append("uid", entry.getValue().getUid()) .append("version", entry.getValue().getVersion())) .collect(Collectors.toList())); } }
sample.setUid(sampleId); sample.setStudyUid(studyId); sample.setVersion(1); if (StringUtils.isEmpty(sample.getUuid())) { sample.setUuid(UUIDUtils.generateOpenCGAUUID(UUIDUtils.Entity.SAMPLE));
updatedSamples.add(new Sample().setUid(entry.getKey()).setVersion(entry.getValue()));
sample.setUid(500).setSource("Lab").setRelease(3).setVersion(2).setStatus(new Status("READY")) .setType("Sample").setSomatic(true).setCreationDate(TimeUtils.getTime()) .setAnnotationSets(AnnotationHelper.createAnnotation());
sample.setStatus(new Status()); sample.setCreationDate(TimeUtils.getTime()); sample.setVersion(1);
@Test public void getSampleWithIndividual() throws CatalogDBException { long studyId = user3.getProjects().get(0).getStudies().get(0).getUid(); QueryOptions queryOptions = new QueryOptions(); // We create a new sample with the individual Sample sample = new Sample().setId("sample1").setStatus(new Status()); QueryResult<Sample> sampleQR = catalogSampleDBAdaptor.insert(studyId, sample, queryOptions); long sampleId = sampleQR.first().getUid(); // We create an individual String individualName = "individualName"; Individual individual = new Individual() .setId(individualName) .setStatus(new Status()) .setSamples(Arrays.asList(new Sample().setUid(sampleId).setVersion(1).setStatus(new Status()))); dbAdaptorFactory.getCatalogIndividualDBAdaptor().insert(studyId, individual, queryOptions); // Get the sample Query query = new Query() .append(SampleDBAdaptor.QueryParams.STUDY_UID.key(), studyId) .append(SampleDBAdaptor.QueryParams.INDIVIDUAL.key(), "individualName"); QueryResult<Sample> individualQuery = catalogSampleDBAdaptor.get(query, queryOptions); assertEquals("sample1", individualQuery.first().getId()); query = new Query() .append(SampleDBAdaptor.QueryParams.STUDY_UID.key(), studyId) .append(SampleDBAdaptor.QueryParams.INDIVIDUAL.key(), "non-existing"); QueryResult<Sample> inexistentIndividualQuery = catalogSampleDBAdaptor.get(query, queryOptions); assertEquals(0, inexistentIndividualQuery.getNumResults()); }