diff --git a/README.md b/README.md index d4c8167..cd993a8 100644 --- a/README.md +++ b/README.md @@ -36,6 +36,9 @@ Ist diese nicht gesetzt. wird intern eine Anonymisierung der Patienten-ID vorgen * `APP_PSEUDONYMIZE_PREFIX`: Standortbezogenes Prefix - `UNKNOWN`, wenn nicht gesetzt * `APP_PSEUDONYMIZE_GENERATOR`: `BUILDIN` oder `GPAS` - `BUILDIN`, wenn nicht gesetzt +**Hinweise**: Der alte Konfigurationsparameter `APP_PSEUDONYMIZER` mit den Werten `GPAS` oder `BUILDIN` sollte nicht +mehr verwendet werden. + #### Eingebaute Anonymisierung Wurde keine oder die Verwendung der eingebauten Anonymisierung konfiguriert, so wird für die Patienten-ID der diff --git a/src/main/kotlin/dev/dnpm/etl/processor/config/AppConfigProperties.kt b/src/main/kotlin/dev/dnpm/etl/processor/config/AppConfigProperties.kt index 9c92869..08a45bb 100644 --- a/src/main/kotlin/dev/dnpm/etl/processor/config/AppConfigProperties.kt +++ b/src/main/kotlin/dev/dnpm/etl/processor/config/AppConfigProperties.kt @@ -20,11 +20,16 @@ package dev.dnpm.etl.processor.config import org.springframework.boot.context.properties.ConfigurationProperties +import org.springframework.boot.context.properties.DeprecatedConfigurationProperty @ConfigurationProperties(AppConfigProperties.NAME) data class AppConfigProperties( var bwhcUri: String?, - var generator: PseudonymGenerator = PseudonymGenerator.BUILDIN, + @get:DeprecatedConfigurationProperty( + reason = "Deprecated in favor of 'app.pseudonymize.generator'", + replacement = "app.pseudonymize.generator" + ) + var pseudonymizer: PseudonymGenerator = PseudonymGenerator.BUILDIN, var transformations: List = listOf() ) { companion object { @@ -34,6 +39,7 @@ data class AppConfigProperties( @ConfigurationProperties(PseudonymizeConfigProperties.NAME) data class PseudonymizeConfigProperties( + var generator: PseudonymGenerator = PseudonymGenerator.BUILDIN, val prefix: String = "UNKNOWN", ) { companion object { 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 42632aa..d8604be 100644 --- a/src/main/kotlin/dev/dnpm/etl/processor/config/AppConfiguration.kt +++ b/src/main/kotlin/dev/dnpm/etl/processor/config/AppConfiguration.kt @@ -28,6 +28,7 @@ import dev.dnpm.etl.processor.pseudonym.PseudonymizeService import dev.dnpm.etl.processor.services.Transformation import dev.dnpm.etl.processor.services.TransformationService import org.slf4j.LoggerFactory +import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty import org.springframework.boot.context.properties.EnableConfigurationProperties import org.springframework.context.annotation.Bean @@ -54,18 +55,32 @@ class AppConfiguration { private val logger = LoggerFactory.getLogger(AppConfiguration::class.java) - @ConditionalOnProperty(value = ["app.pseudonymizer"], havingValue = "GPAS") + @ConditionalOnProperty(value = ["app.pseudonymize.generator"], havingValue = "GPAS") @Bean fun gpasPseudonymGenerator(configProperties: GPasConfigProperties): Generator { return GpasPseudonymGenerator(configProperties) } - @ConditionalOnProperty(value = ["app.pseudonymizer"], havingValue = "BUILDIN", matchIfMissing = true) + @ConditionalOnProperty(value = ["app.pseudonymize.generator"], havingValue = "BUILDIN") @Bean fun buildinPseudonymGenerator(): Generator { return AnonymizingGenerator() } + @ConditionalOnProperty(value = ["app.pseudonymizer"], havingValue = "GPAS") + @ConditionalOnMissingBean + @Bean + fun gpasPseudonymGeneratorOnDeprecatedProperty(configProperties: GPasConfigProperties): Generator { + return GpasPseudonymGenerator(configProperties) + } + + @ConditionalOnProperty(value = ["app.pseudonymizer"], havingValue = "BUILDIN") + @ConditionalOnMissingBean + @Bean + fun buildinPseudonymGeneratorOnDeprecatedProperty(): Generator { + return AnonymizingGenerator() + } + @Bean fun pseudonymizeService( generator: Generator,