summaryrefslogtreecommitdiff
path: root/src/main
diff options
context:
space:
mode:
authorPaul-Christian Volkmer2026-01-07 10:47:12 +0100
committerGitHub2026-01-07 10:47:12 +0100
commitc23e9d790e500d17f2f19252dcd7f3a13cd098e3 (patch)
tree619527375362019bb78dfca41e3997ead954d9d4 /src/main
parentd4ef16c115b8429637f933038254646a61dd81b1 (diff)
feat!: do not delete patient information if no consent is given (#236)
Diffstat (limited to 'src/main')
-rw-r--r--src/main/kotlin/dev/dnpm/etl/processor/input/KafkaInputListener.kt21
-rw-r--r--src/main/kotlin/dev/dnpm/etl/processor/input/MtbFileRestController.kt11
-rw-r--r--src/main/kotlin/dev/dnpm/etl/processor/output/KafkaMtbFileSender.kt8
3 files changed, 24 insertions, 16 deletions
diff --git a/src/main/kotlin/dev/dnpm/etl/processor/input/KafkaInputListener.kt b/src/main/kotlin/dev/dnpm/etl/processor/input/KafkaInputListener.kt
index 2f6b2bb..41c85ac 100644
--- a/src/main/kotlin/dev/dnpm/etl/processor/input/KafkaInputListener.kt
+++ b/src/main/kotlin/dev/dnpm/etl/processor/input/KafkaInputListener.kt
@@ -79,21 +79,28 @@ class KafkaInputListener(
} else {
RequestId("")
}
-
- if (consentEvaluator.check(mtbFile).hasConsent()) {
- logger.debug("Accepted MTB File for processing")
- if (requestId.isBlank()) {
- requestProcessor.processMtbFile(mtbFile)
+ val firstRequestMethodHeader = record.headers().headers("requestMethod")?.firstOrNull()
+ val requestMethod =
+ if (null != firstRequestMethodHeader) {
+ String(firstRequestMethodHeader.value())
} else {
- requestProcessor.processMtbFile(mtbFile, requestId)
+ ""
}
- } else {
+
+ if (requestMethod == "DELETE") {
logger.debug("Accepted MTB File and process deletion")
if (requestId.isBlank()) {
requestProcessor.processDeletion(patientId, TtpConsentStatus.UNKNOWN_CHECK_FILE)
} else {
requestProcessor.processDeletion(patientId, requestId, TtpConsentStatus.UNKNOWN_CHECK_FILE)
}
+ } else {
+ logger.debug("Accepted MTB File for processing")
+ if (requestId.isBlank()) {
+ requestProcessor.processMtbFile(mtbFile)
+ } else {
+ requestProcessor.processMtbFile(mtbFile, requestId)
+ }
}
}
}
diff --git a/src/main/kotlin/dev/dnpm/etl/processor/input/MtbFileRestController.kt b/src/main/kotlin/dev/dnpm/etl/processor/input/MtbFileRestController.kt
index 071e3cd..f4ab194 100644
--- a/src/main/kotlin/dev/dnpm/etl/processor/input/MtbFileRestController.kt
+++ b/src/main/kotlin/dev/dnpm/etl/processor/input/MtbFileRestController.kt
@@ -52,15 +52,8 @@ class MtbFileRestController(
],
)
fun mtbFile(@RequestBody mtbFile: Mtb): ResponseEntity<Unit> {
- val consentEvaluation = consentEvaluator.check(mtbFile)
- if (consentEvaluation.hasConsent()) {
- logger.debug("Accepted MTB File (DNPM V2) for processing")
- requestProcessor.processMtbFile(mtbFile)
- } else {
- logger.debug("Accepted MTB File (DNPM V2) and process deletion")
- val patientId = PatientId(mtbFile.patient.id)
- requestProcessor.processDeletion(patientId, consentEvaluation.getStatus())
- }
+ logger.debug("Accepted MTB File (DNPM V2) for processing")
+ requestProcessor.processMtbFile(mtbFile)
return ResponseEntity.accepted().build()
}
diff --git a/src/main/kotlin/dev/dnpm/etl/processor/output/KafkaMtbFileSender.kt b/src/main/kotlin/dev/dnpm/etl/processor/output/KafkaMtbFileSender.kt
index 71e4a78..bcd532f 100644
--- a/src/main/kotlin/dev/dnpm/etl/processor/output/KafkaMtbFileSender.kt
+++ b/src/main/kotlin/dev/dnpm/etl/processor/output/KafkaMtbFileSender.kt
@@ -48,6 +48,7 @@ class KafkaMtbFileSender(
objectMapper.writeValueAsString(request.content),
)
record.headers().add("requestId", request.requestId.value.toByteArray())
+ record.headers().add("requestMethod", "POST".toByteArray())
when (request) {
is DnpmV2MtbFileRequest ->
record
@@ -86,6 +87,13 @@ class KafkaMtbFileSender(
),
)
record.headers().add("requestId", request.requestId.value.toByteArray())
+ record.headers().add("requestMethod", "DELETE".toByteArray())
+ record
+ .headers()
+ .add(
+ "contentType",
+ CustomMediaType.APPLICATION_VND_DNPM_V2_MTB_JSON_VALUE.toByteArray(),
+ )
val result = kafkaTemplate.send(record)
if (result.get() != null) {
logger.debug("Sent deletion request via KafkaMtbFileSender")