summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/main/kotlin/dev/dnpm/etl/processor/services/ConsentProcessor.kt17
-rw-r--r--src/main/kotlin/dev/dnpm/etl/processor/services/RequestProcessor.kt18
-rw-r--r--src/main/kotlin/dev/dnpm/etl/processor/services/ResponseProcessor.kt1
3 files changed, 18 insertions, 18 deletions
diff --git a/src/main/kotlin/dev/dnpm/etl/processor/services/ConsentProcessor.kt b/src/main/kotlin/dev/dnpm/etl/processor/services/ConsentProcessor.kt
index 47ab919..5a31b42 100644
--- a/src/main/kotlin/dev/dnpm/etl/processor/services/ConsentProcessor.kt
+++ b/src/main/kotlin/dev/dnpm/etl/processor/services/ConsentProcessor.kt
@@ -30,7 +30,6 @@ import dev.dnpm.etl.processor.consent.MtbFileConsentService
import dev.dnpm.etl.processor.pseudonym.ensureMetaDataIsInitialized
import dev.pcvolkmer.mv64e.model.ConsentProvisionType
import dev.pcvolkmer.mv64e.model.ModelProjectConsentPurpose
-import dev.pcvolkmer.mv64e.model.MvhMetadata
import dev.pcvolkmer.mv64e.model.MvhMetadataModelProjectConsentProvisionsInner
import dev.pcvolkmer.mv64e.model.MvhSubmissionType
import dev.pcvolkmer.mv64e.model.PatientRecord
@@ -44,7 +43,6 @@ import org.slf4j.Logger
import org.slf4j.LoggerFactory
import org.springframework.stereotype.Service
import tools.jackson.databind.json.JsonMapper
-import java.io.IOException
import java.time.Clock
import java.time.Instant
import java.util.*
@@ -98,7 +96,7 @@ class ConsentProcessor(
ConsentDomain.MODELLVORHABEN_64E,
)
- addGenomeDbProvisions(mtbFile, genomeDeConsent)
+ addGenomDeProvisions(mtbFile, genomeDeConsent)
if (genomeDeConsent.entry.isNotEmpty()) setGenomDeSubmissionType(mtbFile)
@@ -148,12 +146,14 @@ class ConsentProcessor(
// we need another step to back to string, before we convert to object map
val asJsonString = fhirContext.newJsonParser().encodeResourceToString(resource)
try {
- val mapOfJson: ResearchConsent? =
+ val mapOfJson: ResearchConsent? =
jsonMapper.readValue(
asJsonString,
ResearchConsent::class.java,
)
- mtbFile.metadata?.researchConsents?.add(mapOfJson)
+ if (mapOfJson != null) {
+ mtbFile.metadata?.researchConsents?.add(mapOfJson)
+ }
} catch (e: JsonProcessingException) {
throw RuntimeException(e)
}
@@ -161,8 +161,8 @@ class ConsentProcessor(
}
}
- fun addGenomeDbProvisions(mtbFile: PatientRecord, consentGnomeDe: Bundle) {
- for (entry in consentGnomeDe.entry) {
+ fun addGenomDeProvisions(mtbFile: PatientRecord, consentGenomDe: Bundle) {
+ for (entry in consentGenomDe.entry) {
val resource = entry.resource
if (resource !is Consent) {
continue
@@ -195,8 +195,7 @@ class ConsentProcessor(
mtbFile.metadata?.modelProjectConsent?.provisions?.add(provision)
} catch (ioe: IllegalArgumentException) {
logger.error(
- "Provision code '$provisionCode' is unknown and cannot be mapped.",
- ioe.toString(),
+ "Provision code '$provisionCode' is unknown and cannot be mapped: ${ioe.message}",
)
}
}
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 ac9cfdc..320f828 100644
--- a/src/main/kotlin/dev/dnpm/etl/processor/services/RequestProcessor.kt
+++ b/src/main/kotlin/dev/dnpm/etl/processor/services/RequestProcessor.kt
@@ -56,16 +56,14 @@ class RequestProcessor(
private val consentProcessor: ConsentProcessor?,
) {
- private var logger: Logger = LoggerFactory.getLogger("RequestProcessor")
+ private var logger: Logger = LoggerFactory.getLogger(RequestProcessor::class.java)
fun processMtbFile(mtbFile: PatientRecord): Boolean {
return processMtbFile(mtbFile, randomRequestId())
}
fun processMtbFile(mtbFile: PatientRecord, requestId: RequestId): Boolean {
- val isConsentOk =
- consentProcessor != null && consentProcessor.consentGatedCheckAndTryEmbedding(mtbFile) ||
- consentProcessor == null
+ val isConsentOk = consentProcessor?.consentGatedCheckAndTryEmbedding(mtbFile) ?: true
if (!isConsentOk) {
logger.warn("consent check failed but will be sent to DNPM:DIP!")
@@ -145,15 +143,16 @@ class RequestProcessor(
hasSuccessfulInitialSubmission(request.patientPseudonym()) &&
!hasUnacceptedSuccessfulInitialSubmission(request.patientPseudonym())
) {
- // Use "addition" or "followup" depending on existing follow-ups after "intial" with "Meldebestaetigung"
+ // Use "addition" or "followup" depending on existing follow-ups after "initial" with "Meldebestaetigung"
request.content.metadata?.let {
logger.warn("Override submission type using 'addition' after first initial submission!")
- it.type = if (hasFollowUpAfterLastSuccessfulSubmission(request)) {
+ val hasFollowUp = hasFollowUpAfterLastSuccessfulSubmission(request)
+ it.type = if (hasFollowUp) {
MvhSubmissionType.FOLLOWUP
} else {
MvhSubmissionType.ADDITION
}
- submissionType = if (hasFollowUpAfterLastSuccessfulSubmission(request)) {
+ submissionType = if (hasFollowUp) {
SubmissionType.FOLLOWUP
} else {
SubmissionType.ADDITION
@@ -206,7 +205,7 @@ class RequestProcessor(
.filterNot {
it.submissionType == SubmissionType.INITIAL &&
(it.status == RequestStatus.SUCCESS || it.status == RequestStatus.WARNING) &&
- !(it.submissionAccepted || it.status == RequestStatus.BLOCKED_INITIAL)
+ !it.submissionAccepted
}
.lastOrNull() ?: return false
@@ -232,7 +231,7 @@ class RequestProcessor(
return this.requestService.allRequestsByPatientPseudonym(patientPseudonym).any {
it.submissionType == SubmissionType.INITIAL &&
(it.status == RequestStatus.SUCCESS || it.status == RequestStatus.WARNING) &&
- !(it.submissionAccepted || it.status == RequestStatus.BLOCKED_INITIAL)
+ !it.submissionAccepted
}
}
@@ -311,6 +310,7 @@ class RequestProcessor(
)
)
} catch (_: Exception) {
+ logger.warn("An exception occurred while processing the DELETE request. Saving request as ERROR.")
requestService.save(
Request(
uuid = requestId,
diff --git a/src/main/kotlin/dev/dnpm/etl/processor/services/ResponseProcessor.kt b/src/main/kotlin/dev/dnpm/etl/processor/services/ResponseProcessor.kt
index 2818e00..81266f9 100644
--- a/src/main/kotlin/dev/dnpm/etl/processor/services/ResponseProcessor.kt
+++ b/src/main/kotlin/dev/dnpm/etl/processor/services/ResponseProcessor.kt
@@ -78,6 +78,7 @@ class ResponseProcessor(
}
else -> {
+ logger.error("Unknown request with UUID '{}' and status '{}' - Ignored", event.requestUuid, event.status)
return@ifPresentOrElse
}
}