summaryrefslogtreecommitdiff
path: root/src/main/kotlin
diff options
context:
space:
mode:
authorPaul-Christian Volkmer2025-10-31 16:45:40 +0100
committerGitHub2025-10-31 16:45:40 +0100
commit2cb2b60091405ca95c1f134f5d995e0fc30c908a (patch)
tree2b5ad93886afc5c0149096fdd586197fc0e05e3e /src/main/kotlin
parent68539f3c4a20de26a902ff666efeea322e7cd8d1 (diff)
fix: usage and serialisation of null values (#174)
Diffstat (limited to 'src/main/kotlin')
-rw-r--r--src/main/kotlin/dev/dnpm/etl/processor/config/JacksonConfig.kt2
-rw-r--r--src/main/kotlin/dev/dnpm/etl/processor/pseudonym/extensions.kt68
2 files changed, 36 insertions, 34 deletions
diff --git a/src/main/kotlin/dev/dnpm/etl/processor/config/JacksonConfig.kt b/src/main/kotlin/dev/dnpm/etl/processor/config/JacksonConfig.kt
index fb03d66..2ba81b5 100644
--- a/src/main/kotlin/dev/dnpm/etl/processor/config/JacksonConfig.kt
+++ b/src/main/kotlin/dev/dnpm/etl/processor/config/JacksonConfig.kt
@@ -1,6 +1,7 @@
package dev.dnpm.etl.processor.config
import ca.uhn.fhir.context.FhirContext
+import com.fasterxml.jackson.annotation.JsonInclude
import org.springframework.context.annotation.Bean
import org.springframework.context.annotation.Configuration
import com.fasterxml.jackson.databind.ObjectMapper
@@ -24,4 +25,5 @@ class JacksonConfig {
.disable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS).registerModule(
JavaTimeModule()
)
+ .setSerializationInclusion(JsonInclude.Include.NON_NULL)
}
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 01c781b..21d49c2 100644
--- a/src/main/kotlin/dev/dnpm/etl/processor/pseudonym/extensions.kt
+++ b/src/main/kotlin/dev/dnpm/etl/processor/pseudonym/extensions.kt
@@ -35,56 +35,56 @@ import org.apache.commons.codec.digest.DigestUtils
infix fun Mtb.pseudonymizeWith(pseudonymizeService: PseudonymizeService) {
val patientPseudonym = pseudonymizeService.patientPseudonym(PatientId(this.patient.id)).value
- this.episodesOfCare?.forEach { it.patient.id = patientPseudonym }
+ this.episodesOfCare?.forEach { it.patient?.id = patientPseudonym }
this.carePlans?.forEach {
it.patient.id = patientPseudonym
- it.rebiopsyRequests?.forEach { it.patient.id = patientPseudonym }
- it.histologyReevaluationRequests?.forEach { it.patient.id = patientPseudonym }
- it.medicationRecommendations.forEach { it.patient.id = patientPseudonym }
- it.studyEnrollmentRecommendations?.forEach { it.patient.id = patientPseudonym }
- it.procedureRecommendations?.forEach { it.patient.id = patientPseudonym }
- it.geneticCounselingRecommendation.patient.id = patientPseudonym
+ it.rebiopsyRequests?.forEach { it.patient?.id = patientPseudonym }
+ it.histologyReevaluationRequests?.forEach { it.patient?.id = patientPseudonym }
+ it.medicationRecommendations?.forEach { it.patient?.id = patientPseudonym }
+ it.studyEnrollmentRecommendations?.forEach { it.patient?.id = patientPseudonym }
+ it.procedureRecommendations?.forEach { it.patient?.id = patientPseudonym }
+ it.geneticCounselingRecommendation?.patient?.id = patientPseudonym
}
- this.diagnoses?.forEach { it.patient.id = patientPseudonym }
- this.guidelineTherapies?.forEach { it.patient.id = patientPseudonym }
- this.guidelineProcedures?.forEach { it.patient.id = patientPseudonym }
+ this.diagnoses?.forEach { it.patient?.id = patientPseudonym }
+ this.guidelineTherapies?.forEach { it.patient?.id = patientPseudonym }
+ this.guidelineProcedures?.forEach { it.patient?.id = patientPseudonym }
this.patient.id = patientPseudonym
- this.claims?.forEach { it.patient.id = patientPseudonym }
- this.claimResponses?.forEach { it.patient.id = patientPseudonym }
- this.diagnoses?.forEach { it.patient.id = patientPseudonym }
- this.familyMemberHistories?.forEach { it.patient.id = patientPseudonym }
+ this.claims?.forEach { it.patient?.id = patientPseudonym }
+ this.claimResponses?.forEach { it.patient?.id = patientPseudonym }
+ this.diagnoses?.forEach { it.patient?.id = patientPseudonym }
+ this.familyMemberHistories?.forEach { it.patient?.id = patientPseudonym }
this.histologyReports?.forEach {
it.patient.id = patientPseudonym
it.results.tumorMorphology?.patient?.id = patientPseudonym
it.results.tumorCellContent?.patient?.id = patientPseudonym
}
this.ngsReports?.forEach {
- it.patient.id = patientPseudonym
- it.results.simpleVariants?.forEach { it.patient.id = patientPseudonym }
- it.results.copyNumberVariants?.forEach { it.patient.id = patientPseudonym }
- it.results.dnaFusions?.forEach { it.patient.id = patientPseudonym }
- it.results.rnaFusions?.forEach { it.patient.id = patientPseudonym }
- it.results.tumorCellContent?.patient?.id = patientPseudonym
- it.results.brcaness?.patient?.id = patientPseudonym
- it.results.tmb?.patient?.id = patientPseudonym
- it.results.hrdScore?.patient?.id = patientPseudonym
+ it.patient?.id = patientPseudonym
+ it.results?.simpleVariants?.forEach { it.patient?.id = patientPseudonym }
+ it.results?.copyNumberVariants?.forEach { it.patient?.id = patientPseudonym }
+ it.results?.dnaFusions?.forEach { it.patient?.id = patientPseudonym }
+ it.results?.rnaFusions?.forEach { it.patient?.id = patientPseudonym }
+ it.results?.tumorCellContent?.patient?.id = patientPseudonym
+ it.results?.brcaness?.patient?.id = patientPseudonym
+ it.results?.tmb?.patient?.id = patientPseudonym
+ it.results?.hrdScore?.patient?.id = patientPseudonym
}
this.ihcReports?.forEach {
- it.patient.id = patientPseudonym
- it.results.msiMmr?.forEach { it.patient.id = patientPseudonym }
- it.results.proteinExpression?.forEach { it.patient.id = patientPseudonym }
+ it.patient?.id = patientPseudonym
+ it.results?.msiMmr?.forEach { it.patient?.id = patientPseudonym }
+ it.results?.proteinExpression?.forEach { it.patient?.id = patientPseudonym }
}
- this.responses?.forEach { it.patient.id = patientPseudonym }
- this.specimens?.forEach { it.patient.id = patientPseudonym }
- this.priorDiagnosticReports?.forEach { it.patient.id = patientPseudonym }
- this.performanceStatus?.forEach { it.patient.id = patientPseudonym }
+ this.responses?.forEach { it.patient?.id = patientPseudonym }
+ this.specimens?.forEach { it.patient?.id = patientPseudonym }
+ this.priorDiagnosticReports?.forEach { it.patient?.id = patientPseudonym }
+ this.performanceStatus?.forEach { it.patient?.id = patientPseudonym }
this.systemicTherapies?.forEach {
it.history?.forEach {
- it.patient.id = patientPseudonym
+ it.patient?.id = patientPseudonym
}
}
this.followUps?.forEach {
- it.patient.id = patientPseudonym
+ it.patient?.id = patientPseudonym
}
this.msiFindings?.forEach { it -> it.patient.id = patientPseudonym }
@@ -254,7 +254,7 @@ infix fun Mtb.anonymizeContentWith(pseudonymizeService: PseudonymizeService) {
this.ihcReports?.forEach { it ->
it.id = it?.id?.let(::anonymize)
it.specimen?.id = it.specimen?.id?.let(::anonymize)
- it.results.proteinExpression.forEach { it -> it?.id = it.id.let(::anonymize) }
+ it.results?.proteinExpression?.forEach { it -> it?.id = it.id.let(::anonymize) }
}
this.msiFindings?.forEach { it ->
@@ -310,5 +310,5 @@ fun Mtb.ensureMetaDataIsInitialized() {
}
infix fun Mtb.addGenomDeTan(pseudonymizeService: PseudonymizeService) {
- this.metadata.transferTan = pseudonymizeService.genomDeTan(PatientId(this.patient.id))
+ this.metadata?.transferTan = pseudonymizeService.genomDeTan(PatientId(this.patient.id))
}