summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul-Christian Volkmer2026-11-09 10:55:16 +0100
committerGitHub2026-11-09 09:55:16 +0000
commitca73da40b008efd441b305c76d640e16262ce6b9 (patch)
tree6c25fb29f811b236ac31eb69518add18c8b3eff7
parentbe13f989816db211d440caddb37a9e4e01aadb51 (diff)
chore: code cleanup (#340)
-rw-r--r--src/integrationTest/kotlin/dev/dnpm/etl/processor/EtlProcessorApplicationTests.kt14
-rw-r--r--src/integrationTest/kotlin/dev/dnpm/etl/processor/input/MtbFileRestControllerTest.kt2
-rw-r--r--src/integrationTest/kotlin/dev/dnpm/etl/processor/services/RequestServiceIntegrationTest.kt1
-rw-r--r--src/main/kotlin/dev/dnpm/etl/processor/config/AppConfiguration.kt22
-rw-r--r--src/main/kotlin/dev/dnpm/etl/processor/monitoring/ReportService.kt2
-rw-r--r--src/main/kotlin/dev/dnpm/etl/processor/output/RestMtbFileSender.kt8
-rw-r--r--src/main/kotlin/dev/dnpm/etl/processor/pseudonym/AnonymizingHmacGenerator.kt2
-rw-r--r--src/main/kotlin/dev/dnpm/etl/processor/pseudonym/extensions.kt2
-rw-r--r--src/main/kotlin/dev/dnpm/etl/processor/security/UserRoleService.kt2
-rw-r--r--src/main/kotlin/dev/dnpm/etl/processor/services/ConsentProcessor.kt9
-rw-r--r--src/main/kotlin/dev/dnpm/etl/processor/services/RequestService.kt4
-rw-r--r--src/main/kotlin/dev/dnpm/etl/processor/web/StatisticsController.kt1
-rw-r--r--src/main/resources/application-dev.yml2
13 files changed, 27 insertions, 44 deletions
diff --git a/src/integrationTest/kotlin/dev/dnpm/etl/processor/EtlProcessorApplicationTests.kt b/src/integrationTest/kotlin/dev/dnpm/etl/processor/EtlProcessorApplicationTests.kt
index d54c0bf..2962a11 100644
--- a/src/integrationTest/kotlin/dev/dnpm/etl/processor/EtlProcessorApplicationTests.kt
+++ b/src/integrationTest/kotlin/dev/dnpm/etl/processor/EtlProcessorApplicationTests.kt
@@ -24,18 +24,8 @@ import dev.dnpm.etl.processor.monitoring.RequestRepository
import dev.dnpm.etl.processor.monitoring.RequestStatus
import dev.dnpm.etl.processor.output.DnpmV2MtbFileRequest
import dev.dnpm.etl.processor.output.MtbFileSender
-import dev.dnpm.etl.processor.output.RestDipMtbFileSender
import dev.dnpm.etl.processor.output.RestMtbFileSender
-import dev.pcvolkmer.mv64e.model.Coding
-import dev.pcvolkmer.mv64e.model.ConsentProvisionType
-import dev.pcvolkmer.mv64e.model.ModelProjectConsentPurpose
-import dev.pcvolkmer.mv64e.model.MtbDiagnosis
-import dev.pcvolkmer.mv64e.model.MvhMetadata
-import dev.pcvolkmer.mv64e.model.MvhMetadataModelProjectConsent
-import dev.pcvolkmer.mv64e.model.MvhMetadataModelProjectConsentProvisionsInner
-import dev.pcvolkmer.mv64e.model.Patient
-import dev.pcvolkmer.mv64e.model.PatientRecord
-import dev.pcvolkmer.mv64e.model.Reference
+import dev.pcvolkmer.mv64e.model.*
import org.assertj.core.api.Assertions.assertThat
import org.junit.jupiter.api.BeforeEach
import org.junit.jupiter.api.Nested
@@ -43,8 +33,8 @@ import org.junit.jupiter.api.Test
import org.junit.jupiter.api.extension.ExtendWith
import org.mockito.kotlin.*
import org.springframework.beans.factory.annotation.Autowired
-import org.springframework.boot.webmvc.test.autoconfigure.AutoConfigureMockMvc
import org.springframework.boot.test.context.SpringBootTest
+import org.springframework.boot.webmvc.test.autoconfigure.AutoConfigureMockMvc
import org.springframework.context.ApplicationContext
import org.springframework.http.MediaType
import org.springframework.security.test.web.servlet.request.SecurityMockMvcRequestPostProcessors.user
diff --git a/src/integrationTest/kotlin/dev/dnpm/etl/processor/input/MtbFileRestControllerTest.kt b/src/integrationTest/kotlin/dev/dnpm/etl/processor/input/MtbFileRestControllerTest.kt
index a9427b7..9de0407 100644
--- a/src/integrationTest/kotlin/dev/dnpm/etl/processor/input/MtbFileRestControllerTest.kt
+++ b/src/integrationTest/kotlin/dev/dnpm/etl/processor/input/MtbFileRestControllerTest.kt
@@ -349,7 +349,7 @@ class MtbFileRestControllerTest {
companion object {
- val mtbFile =
+ val mtbFile: PatientRecord =
PatientRecord.builder()
.patient(Patient.builder().id("PID").build())
.episodesOfCare(
diff --git a/src/integrationTest/kotlin/dev/dnpm/etl/processor/services/RequestServiceIntegrationTest.kt b/src/integrationTest/kotlin/dev/dnpm/etl/processor/services/RequestServiceIntegrationTest.kt
index b599134..c739c63 100644
--- a/src/integrationTest/kotlin/dev/dnpm/etl/processor/services/RequestServiceIntegrationTest.kt
+++ b/src/integrationTest/kotlin/dev/dnpm/etl/processor/services/RequestServiceIntegrationTest.kt
@@ -22,7 +22,6 @@ package dev.dnpm.etl.processor.services
import dev.dnpm.etl.processor.*
import dev.dnpm.etl.processor.monitoring.*
-import dev.dnpm.etl.processor.output.RestDipMtbFileSender
import dev.dnpm.etl.processor.output.RestMtbFileSender
import org.assertj.core.api.Assertions.assertThat
import org.junit.jupiter.api.BeforeEach
diff --git a/src/main/kotlin/dev/dnpm/etl/processor/config/AppConfiguration.kt b/src/main/kotlin/dev/dnpm/etl/processor/config/AppConfiguration.kt
index c15445c..5912085 100644
--- a/src/main/kotlin/dev/dnpm/etl/processor/config/AppConfiguration.kt
+++ b/src/main/kotlin/dev/dnpm/etl/processor/config/AppConfiguration.kt
@@ -145,6 +145,17 @@ class AppConfiguration {
return GpasPseudonymGenerator(configProperties, retryTemplate, restTemplate, appFhirConfig)
}
+ @ConditionalOnProperty(value = ["app.pseudonymize.generator"], havingValue = "VFPS")
+ @Bean
+ fun vfpsPseudonymGenerator(
+ configProperties: VfpsConfigProperties,
+ retryTemplate: RetryTemplate,
+ restTemplate: RestTemplate,
+ ): Generator {
+ logger.info("Selected 'VfpsPseudonym Generator'")
+ return VfpsPseudonymGenerator(configProperties, retryTemplate, restTemplate)
+ }
+
@ConditionalOnProperty(
value = ["app.pseudonymize.generator"],
havingValue = "BUILDIN",
@@ -264,17 +275,6 @@ class AppConfiguration {
)
}
- @ConditionalOnProperty(value = ["app.pseudonymize.generator"], havingValue = "VFPS")
- @Bean
- fun vfpsPseudonymGenerator(
- configProperties: VfpsConfigProperties,
- retryTemplate: RetryTemplate,
- restTemplate: RestTemplate,
- ): Generator {
- logger.info("Selected 'VfpsPseudonym Generator'")
- return VfpsPseudonymGenerator(configProperties, retryTemplate, restTemplate)
- }
-
@Bean
fun jdbcConfiguration(): AbstractJdbcConfiguration {
return AppJdbcConfiguration()
diff --git a/src/main/kotlin/dev/dnpm/etl/processor/monitoring/ReportService.kt b/src/main/kotlin/dev/dnpm/etl/processor/monitoring/ReportService.kt
index 96cdb5c..7173fb6 100644
--- a/src/main/kotlin/dev/dnpm/etl/processor/monitoring/ReportService.kt
+++ b/src/main/kotlin/dev/dnpm/etl/processor/monitoring/ReportService.kt
@@ -61,7 +61,7 @@ class ReportService(private val jsonMapper: JsonMapper) {
val details: Optional<String> = Optional.empty(),
val path: Optional<String> = Optional.empty(),
) {
- fun getMessageText() = message.orElse(details.orElse("No details available"))
+ fun getMessageText() = message.orElse(details.orElse("No details available")) ?: "No information"
}
@EnumNaming(EnumNamingStrategies.LowerCaseStrategy::class)
diff --git a/src/main/kotlin/dev/dnpm/etl/processor/output/RestMtbFileSender.kt b/src/main/kotlin/dev/dnpm/etl/processor/output/RestMtbFileSender.kt
index c222c6d..07d632d 100644
--- a/src/main/kotlin/dev/dnpm/etl/processor/output/RestMtbFileSender.kt
+++ b/src/main/kotlin/dev/dnpm/etl/processor/output/RestMtbFileSender.kt
@@ -71,7 +71,7 @@ abstract class RestMtbFileSender(
} catch (_: IllegalArgumentException) {
logger.error("Not a valid URI to export to: '{}'", restTargetProperties.uri!!)
} catch (e: RestClientResponseException) {
- logger.info(restTargetProperties.uri!!.toString())
+ logger.info(restTargetProperties.uri!!)
logger.error("Request data not accepted by remote system", e)
return MtbFileSender.Response(
RequestStatus.ERROR,
@@ -91,14 +91,14 @@ abstract class RestMtbFileSender(
return@execute MtbFileSender.Response(RequestStatus.SUCCESS)
}
} catch (_: IllegalArgumentException) {
- logger.error("Not a valid URI to export to: '{}'", restTargetProperties.uri!!)
+ logger.error("Not a valid URI for delete: '{}'", restTargetProperties.uri!!)
} catch (e: RestClientException) {
- logger.info(restTargetProperties.uri!!.toString())
+ logger.info(restTargetProperties.uri!!)
logger.error("Cannot send data to remote system", e)
} catch (e: RetryException) {
val cause = e.cause
if (cause is RestClientException) {
- logger.info(restTargetProperties.uri!!.toString())
+ logger.info(restTargetProperties.uri!!)
logger.error("Cannot send data to remote system", e)
}
}
diff --git a/src/main/kotlin/dev/dnpm/etl/processor/pseudonym/AnonymizingHmacGenerator.kt b/src/main/kotlin/dev/dnpm/etl/processor/pseudonym/AnonymizingHmacGenerator.kt
index 646f6d3..f0fd54d 100644
--- a/src/main/kotlin/dev/dnpm/etl/processor/pseudonym/AnonymizingHmacGenerator.kt
+++ b/src/main/kotlin/dev/dnpm/etl/processor/pseudonym/AnonymizingHmacGenerator.kt
@@ -20,10 +20,8 @@
package dev.dnpm.etl.processor.pseudonym
-import dev.dnpm.etl.processor.config.AppConfigProperties
import dev.dnpm.etl.processor.config.PseudonymizeConfigProperties
import org.apache.commons.codec.binary.Base32
-import org.apache.commons.codec.digest.DigestUtils
import org.apache.commons.codec.digest.HmacAlgorithms
import org.apache.commons.codec.digest.HmacUtils
import java.security.SecureRandom
diff --git a/src/main/kotlin/dev/dnpm/etl/processor/pseudonym/extensions.kt b/src/main/kotlin/dev/dnpm/etl/processor/pseudonym/extensions.kt
index cc13a04..acbe51b 100644
--- a/src/main/kotlin/dev/dnpm/etl/processor/pseudonym/extensions.kt
+++ b/src/main/kotlin/dev/dnpm/etl/processor/pseudonym/extensions.kt
@@ -132,7 +132,7 @@ infix fun PatientRecord.anonymizeContentWith(pseudonymizeService: PseudonymizeSe
episodeOfCare.diagnoses?.filterNotNull()?.forEach { it.id = it.id?.let(::anonymize) }
}
- this.carePlans?.onEach { carePlan ->
+ this.carePlans?.forEach { carePlan ->
carePlan?.apply {
this.id = id?.let { anonymize(it) }
diff --git a/src/main/kotlin/dev/dnpm/etl/processor/security/UserRoleService.kt b/src/main/kotlin/dev/dnpm/etl/processor/security/UserRoleService.kt
index 0c1fe11..a115cff 100644
--- a/src/main/kotlin/dev/dnpm/etl/processor/security/UserRoleService.kt
+++ b/src/main/kotlin/dev/dnpm/etl/processor/security/UserRoleService.kt
@@ -51,6 +51,6 @@ class UserRoleService(
.filterIsInstance<OidcUser>()
.filter { it.preferredUsername == username }
.flatMap { sessionRegistry.getAllSessions(it, true) }
- .onEach { it.expireNow() }
+ .forEach { it.expireNow() }
}
}
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 f7df389..d4b83ef 100644
--- a/src/main/kotlin/dev/dnpm/etl/processor/services/ConsentProcessor.kt
+++ b/src/main/kotlin/dev/dnpm/etl/processor/services/ConsentProcessor.kt
@@ -288,22 +288,19 @@ class ConsentProcessor(
isValidCoding &&
isRequestDateInRange(requestDate, (entry.resource as Consent).provision.period)
}
- .map { entry: BundleEntryComponent ->
+ .flatMap { entry: BundleEntryComponent ->
val consent = (entry.getResource() as Consent)
consent.provision.provision
.filter { subProvision ->
isRequestDateInRange(requestDate, subProvision.period)
// search coding entries of current provision for code and system
- subProvision.code
- .map { c -> c.coding }
- .flatten()
- .any { code ->
+ subProvision.code.flatMap { c -> c.coding }
+ .any { code ->
targetCode.equals(code.code) && targetSystem.equals(code.system)
}
}
.map { subProvision -> subProvision }
}
- .flatten()
if (entriesOfInterest.isNotEmpty()) {
return entriesOfInterest.first().type
diff --git a/src/main/kotlin/dev/dnpm/etl/processor/services/RequestService.kt b/src/main/kotlin/dev/dnpm/etl/processor/services/RequestService.kt
index b967f2d..219fef0 100644
--- a/src/main/kotlin/dev/dnpm/etl/processor/services/RequestService.kt
+++ b/src/main/kotlin/dev/dnpm/etl/processor/services/RequestService.kt
@@ -56,12 +56,12 @@ class RequestService(private val requestRepository: RequestRepository) {
requestRepository.findAllByPatientPseudonymOrderByProcessedAtDesc(patientPseudonym)
fun lastMtbFileRequestForPatientPseudonym(patientPseudonym: PatientPseudonym) =
- Companion.lastMtbFileRequestForPatientPseudonym(
+ lastMtbFileRequestForPatientPseudonym(
allRequestsByPatientPseudonym(patientPseudonym)
)
fun isLastRequestWithKnownStatusDeletion(patientPseudonym: PatientPseudonym) =
- Companion.isLastRequestWithKnownStatusDeletion(
+ isLastRequestWithKnownStatusDeletion(
allRequestsByPatientPseudonym(patientPseudonym)
)
diff --git a/src/main/kotlin/dev/dnpm/etl/processor/web/StatisticsController.kt b/src/main/kotlin/dev/dnpm/etl/processor/web/StatisticsController.kt
index 4cb99f1..e2cde09 100644
--- a/src/main/kotlin/dev/dnpm/etl/processor/web/StatisticsController.kt
+++ b/src/main/kotlin/dev/dnpm/etl/processor/web/StatisticsController.kt
@@ -24,7 +24,6 @@ import dev.dnpm.etl.processor.monitoring.RequestStatus
import dev.dnpm.etl.processor.monitoring.RequestType
import dev.dnpm.etl.processor.monitoring.SubmissionType
import dev.dnpm.etl.processor.services.RequestService
-import net.sf.saxon.tree.tiny.Statistics
import org.springframework.stereotype.Controller
import org.springframework.ui.Model
import org.springframework.web.bind.annotation.GetMapping
diff --git a/src/main/resources/application-dev.yml b/src/main/resources/application-dev.yml
index 77bf157..df9f546 100644
--- a/src/main/resources/application-dev.yml
+++ b/src/main/resources/application-dev.yml
@@ -119,7 +119,7 @@ app:
# input-topic: test_input
# output-topic: test_output
# output-response-topic: test_response
- switch:
+ routing:
nngm:
uri: https://mvh-test.medicalsyn.com/api/v1.0/mvh-import/import-dnpm
api-key: a12b34decacdefg1213