diff options
Diffstat (limited to 'src/main/kotlin')
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 } } |
