Skip to content
This repository was archived by the owner on May 5, 2021. It is now read-only.

Commit e4c7920

Browse files
1 parent cc226b6 commit e4c7920

2 files changed

Lines changed: 16 additions & 5 deletions

File tree

sormas-backend/src/main/java/de/symeda/sormas/backend/sample/SampleService.java

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -183,8 +183,9 @@ public Sample getReferredFrom(String sampleUuid) {
183183
CriteriaBuilder cb = em.getCriteriaBuilder();
184184
CriteriaQuery<Sample> cq = cb.createQuery(getElementClass());
185185
Root<Sample> from = cq.from(getElementClass());
186+
Join<Sample, Sample> referredJoin = from.join(Sample.REFERRED_TO, JoinType.LEFT);
186187

187-
cq.where(cb.equal(from.get(Sample.REFERRED_TO), getByUuid(sampleUuid)));
188+
cq.where(cb.equal(referredJoin.get(AbstractDomainObject.UUID), sampleUuid));
188189
try {
189190
return em.createQuery(cq).getSingleResult();
190191
} catch (NoResultException e) {
@@ -406,24 +407,28 @@ public Predicate buildCriteriaFilter(SampleCriteria criteria, CriteriaBuilder cb
406407
filter = CriteriaBuilderHelper.and(cb, filter, cb.equal(joins.getContact().get(Contact.UUID), criteria.getContact().getUuid()));
407408
}
408409
if (criteria.getEventParticipant() != null) {
409-
filter = CriteriaBuilderHelper.and(cb, filter, cb.equal(joins.getEventParticipant().get(EventParticipant.UUID), criteria.getEventParticipant().getUuid()));
410+
filter = CriteriaBuilderHelper
411+
.and(cb, filter, cb.equal(joins.getEventParticipant().get(EventParticipant.UUID), criteria.getEventParticipant().getUuid()));
410412
}
411413
if (criteria.getSampleReportDateFrom() != null && criteria.getSampleReportDateTo() != null) {
412414
filter = CriteriaBuilderHelper.and(
413415
cb,
414416
filter,
415417
cb.between(sample.get(Sample.SAMPLE_DATE_TIME), criteria.getSampleReportDateFrom(), criteria.getSampleReportDateTo()));
416418
} else if (criteria.getSampleReportDateFrom() != null) {
417-
filter = CriteriaBuilderHelper.and(cb, filter, cb.greaterThanOrEqualTo(sample.get(Sample.SAMPLE_DATE_TIME), criteria.getSampleReportDateFrom()));
419+
filter = CriteriaBuilderHelper
420+
.and(cb, filter, cb.greaterThanOrEqualTo(sample.get(Sample.SAMPLE_DATE_TIME), criteria.getSampleReportDateFrom()));
418421
} else if (criteria.getSampleReportDateTo() != null) {
419-
filter = CriteriaBuilderHelper.and(cb, filter, cb.lessThanOrEqualTo(sample.get(Sample.SAMPLE_DATE_TIME), criteria.getSampleReportDateTo()));
422+
filter =
423+
CriteriaBuilderHelper.and(cb, filter, cb.lessThanOrEqualTo(sample.get(Sample.SAMPLE_DATE_TIME), criteria.getSampleReportDateTo()));
420424
}
421425
if (criteria.getSpecimenCondition() != null) {
422426
filter = CriteriaBuilderHelper.and(cb, filter, cb.equal(sample.get(Sample.SPECIMEN_CONDITION), criteria.getSpecimenCondition()));
423427
}
424428
if (criteria.getRelevanceStatus() != null) {
425429
if (criteria.getRelevanceStatus() == EntityRelevanceStatus.ACTIVE) {
426-
filter = CriteriaBuilderHelper.and(cb, filter, cb.or(cb.equal(joins.getCaze().get(Case.ARCHIVED), false), cb.isNull(joins.getCaze().get(Case.ARCHIVED))));
430+
filter = CriteriaBuilderHelper
431+
.and(cb, filter, cb.or(cb.equal(joins.getCaze().get(Case.ARCHIVED), false), cb.isNull(joins.getCaze().get(Case.ARCHIVED))));
427432
} else if (criteria.getRelevanceStatus() == EntityRelevanceStatus.ARCHIVED) {
428433
filter = CriteriaBuilderHelper.and(cb, filter, cb.equal(joins.getCaze().get(Case.ARCHIVED), true));
429434
}

sormas-ui/src/main/java/de/symeda/sormas/ui/samples/SampleController.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -129,6 +129,12 @@ public void createReferral(SampleDto sample) {
129129
createView.addCommitListener(() -> {
130130
if (!createForm.getFieldGroup().isModified()) {
131131
saveSample(createForm);
132+
133+
SampleDto updatedSample = FacadeProvider.getSampleFacade().getSampleByUuid(sample.getUuid());
134+
updatedSample.setReferredTo(referralSample.toReference());
135+
FacadeProvider.getSampleFacade().saveSample(updatedSample);
136+
137+
navigateToData(sample.getUuid());
132138
}
133139
});
134140

0 commit comments

Comments
 (0)