diff options
| author | Paul-Christian Volkmer | 2025-11-01 20:17:24 +0100 |
|---|---|---|
| committer | GitHub | 2025-11-01 20:17:24 +0100 |
| commit | a43e0f7b2d1d46ec83e97e63246f7d4ba5c9bbc9 (patch) | |
| tree | ccbecd135dc94cb01cb3f02730439e10b32803c5 | |
| parent | 7ced45b3d6499863b8cc18193b08e8e362e466e4 (diff) | |
test: check equal anonymization for diagnosis and references (#177)
This should ensure correct anonymization because some cases of
non-resolvable references have been observed in previous runs.
| -rw-r--r-- | src/test/kotlin/dev/dnpm/etl/processor/pseudonym/ExtensionsTest.kt | 63 |
1 files changed, 61 insertions, 2 deletions
diff --git a/src/test/kotlin/dev/dnpm/etl/processor/pseudonym/ExtensionsTest.kt b/src/test/kotlin/dev/dnpm/etl/processor/pseudonym/ExtensionsTest.kt index 8460293..8e4cde7 100644 --- a/src/test/kotlin/dev/dnpm/etl/processor/pseudonym/ExtensionsTest.kt +++ b/src/test/kotlin/dev/dnpm/etl/processor/pseudonym/ExtensionsTest.kt @@ -112,7 +112,7 @@ class ExtensionsTest { }.whenever(pseudonymizeService).prefix() val mtbFile = Mtb().apply { - this.patient = dev.pcvolkmer.mv64e.mtb.Patient().apply { + this.patient = Patient().apply { this.id = "PID" this.birthDate = Date.from(Instant.now()) this.gender = GenderCoding().apply { @@ -173,7 +173,7 @@ class ExtensionsTest { Math.random().toLong().toString() simpleVariant.fusionPartner5Prime?.transcriptId?.value = Math.random().toLong().toString() - simpleVariant.externalIds?.forEach { it -> + simpleVariant.externalIds?.forEach { it?.value = Math.random().toLong().toString() } } @@ -197,4 +197,63 @@ class ExtensionsTest { } } } + + @Test + fun shouldUseSameAnonymIdForDiagnosisAndDiagnosisReferences(@Mock pseudonymizeService: PseudonymizeService) { + + doAnswer { + it.arguments[0] + "PSEUDO-ID" + }.whenever(pseudonymizeService).patientPseudonym(anyValueClass()) + + doAnswer { + "TESTDOMAIN" + }.whenever(pseudonymizeService).prefix() + + val mtbFile = Mtb().apply { + this.patient = Patient().apply { + this.id = "PID" + this.birthDate = Date.from(Instant.now()) + this.gender = GenderCoding().apply { + this.code = GenderCodingCode.MALE + } + } + this.diagnoses = listOf( + MtbDiagnosis().apply { + this.id = "Diagnosis-1" + } + ) + this.guidelineTherapies = listOf( + MtbSystemicTherapy().apply { + this.id = "Systemic-Therapy-1" + this.reason = Reference().apply { + this.id = "Diagnosis-1" + } + } + ) + this.guidelineProcedures = listOf( + OncoProcedure().apply { + this.id = "Onco-Procedure-1" + this.reason = Reference().apply { + this.id = "Diagnosis-1" + } + } + ) + this.specimens = listOf( + TumorSpecimen().apply { + this.id = "Specimen-1" + this.diagnosis = Reference().apply { + this.id = "Diagnosis-1" + } + } + ) + } + + mtbFile.pseudonymizeWith(pseudonymizeService) + mtbFile.anonymizeContentWith(pseudonymizeService) + + assertThat(mtbFile.diagnoses.first().id).isEqualTo(mtbFile.guidelineTherapies.first().reason.id) + assertThat(mtbFile.diagnoses.first().id).isEqualTo(mtbFile.guidelineProcedures.first().reason.id) + assertThat(mtbFile.diagnoses.first().id).isEqualTo(mtbFile.specimens.first().diagnosis.id) + } } |
