summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorPaul-Christian Volkmer2023-08-04 11:43:23 +0200
committerPaul-Christian Volkmer2023-08-04 11:43:23 +0200
commit459ad59c1d988a5b3ecc60d844f4fa6c9bce11f5 (patch)
treee32c69d59e49c63c62781f78dc41815787857113 /src
parentb14f2c1794fe41f9ec5e9e400d51c0fbf991953a (diff)
Do not detect duplicates after deletion request
Diffstat (limited to 'src')
-rw-r--r--src/main/kotlin/dev/dnpm/etl/processor/services/RequestProcessor.kt9
1 files changed, 6 insertions, 3 deletions
diff --git a/src/main/kotlin/dev/dnpm/etl/processor/services/RequestProcessor.kt b/src/main/kotlin/dev/dnpm/etl/processor/services/RequestProcessor.kt
index afac40b..bdf2827 100644
--- a/src/main/kotlin/dev/dnpm/etl/processor/services/RequestProcessor.kt
+++ b/src/main/kotlin/dev/dnpm/etl/processor/services/RequestProcessor.kt
@@ -46,12 +46,15 @@ class RequestProcessor(
val pid = mtbFile.patient.id
val pseudonymized = pseudonymizeService.pseudonymize(mtbFile)
- val lastRequestForPatient =
- requestRepository.findAllByPatientIdOrderByProcessedAtDesc(pseudonymized.patient.id)
+ val allRequests = requestRepository.findAllByPatientIdOrderByProcessedAtDesc(pseudonymized.patient.id)
+
+ val lastMtbFileRequestForPatient = allRequests
.filter { it.type == RequestType.MTB_FILE }
.firstOrNull { it.status == RequestStatus.SUCCESS || it.status == RequestStatus.WARNING }
- if (null != lastRequestForPatient && lastRequestForPatient.fingerprint == fingerprint(mtbFile)) {
+ val isLastRequestDeletion = allRequests.firstOrNull()?.type == RequestType.DELETE
+
+ if (null != lastMtbFileRequestForPatient && lastMtbFileRequestForPatient.fingerprint == fingerprint(mtbFile) && !isLastRequestDeletion) {
requestRepository.save(
Request(
patientId = pseudonymized.patient.id,