From 4c0c5aca051e660e315416de5c81fc4e390fb153 Mon Sep 17 00:00:00 2001 From: geir-waagboe Date: Mon, 10 Mar 2025 13:11:36 +0100 Subject: [PATCH 1/3] IS-3152: Log warning when wrong combination --- .../no/nav/syfo/application/DialogmeldingProcessor.kt | 4 +++- .../kotlin/no/nav/syfo/model/DialogmeldingKodeverk.kt | 8 ++++++++ .../syfo/validation/ValidateDialogMeldingKodeverk.kt | 11 ++++++++++- 3 files changed, 21 insertions(+), 2 deletions(-) diff --git a/src/main/kotlin/no/nav/syfo/application/DialogmeldingProcessor.kt b/src/main/kotlin/no/nav/syfo/application/DialogmeldingProcessor.kt index 6d08aa1d..8e21e53d 100644 --- a/src/main/kotlin/no/nav/syfo/application/DialogmeldingProcessor.kt +++ b/src/main/kotlin/no/nav/syfo/application/DialogmeldingProcessor.kt @@ -117,6 +117,7 @@ class DialogmeldingProcessor( val vedleggListe = xmlVedlegg.map { xml -> xml.toVedlegg() } val validationResult = validateMessage( + msgId = msgId, sha256String = sha256String, loggingMeta = loggingMeta, innbyggerOK = innbyggerOK, @@ -180,6 +181,7 @@ class DialogmeldingProcessor( } suspend fun validateMessage( + msgId: String, sha256String: String, loggingMeta: LoggingMeta, innbyggerOK: Boolean, @@ -205,7 +207,7 @@ class DialogmeldingProcessor( handleTestFnrInProd(loggingMeta) } else if (dialogmeldingType.isHenvendelseFraLegeOrForesporselSvar() && dialogmeldingXml.notat.first().tekstNotatInnhold.isNullOrEmpty()) { handleMeldingsTekstMangler(loggingMeta) - } else if (!isKodeverkValid(dialogmeldingXml, dialogmeldingType)) { + } else if (!isKodeverkValid(msgId, dialogmeldingXml, dialogmeldingType)) { handleInvalidDialogMeldingKodeverk(loggingMeta) } else if (virusScanService.vedleggContainsVirus(vedlegg)) { handleVedleggMayContainVirus(loggingMeta) diff --git a/src/main/kotlin/no/nav/syfo/model/DialogmeldingKodeverk.kt b/src/main/kotlin/no/nav/syfo/model/DialogmeldingKodeverk.kt index e8e27bbb..20540c22 100644 --- a/src/main/kotlin/no/nav/syfo/model/DialogmeldingKodeverk.kt +++ b/src/main/kotlin/no/nav/syfo/model/DialogmeldingKodeverk.kt @@ -9,6 +9,14 @@ enum class DialogmeldingKodeverk( val arenaNotatTittel: String ) { PRODUKSJON_AV_NOTAT_FORFATTER("2.16.578.1.12.4.1.1.9057", "Forfatter", "1", "", "", ""), + INNKALLING_DIALOGMOTE_KODEVERK( + "2.16.578.1.12.4.1.1.8125", + "", + "", + "", + "", + "" + ), SVAR_PAA_INNKALLING_DIALOGMOTE_JA_JEG_KOMMER( "2.16.578.1.12.4.1.1.8126", "Ja, jeg kommer", diff --git a/src/main/kotlin/no/nav/syfo/validation/ValidateDialogMeldingKodeverk.kt b/src/main/kotlin/no/nav/syfo/validation/ValidateDialogMeldingKodeverk.kt index cd377bad..287df09e 100644 --- a/src/main/kotlin/no/nav/syfo/validation/ValidateDialogMeldingKodeverk.kt +++ b/src/main/kotlin/no/nav/syfo/validation/ValidateDialogMeldingKodeverk.kt @@ -1,10 +1,15 @@ package no.nav.syfo.validation import no.nav.helse.dialogmelding.XMLDialogmelding +import no.nav.syfo.model.DialogmeldingKodeverk import no.nav.syfo.model.DialogmeldingType import no.nav.syfo.model.findDialogmeldingKodeverk +import org.slf4j.Logger +import org.slf4j.LoggerFactory -fun isKodeverkValid(xmlDialogmelding: XMLDialogmelding, dialogmeldingType: DialogmeldingType): Boolean { +val logger: Logger = LoggerFactory.getLogger("no.nav.syfo.padm2") + +fun isKodeverkValid(msgId: String, xmlDialogmelding: XMLDialogmelding, dialogmeldingType: DialogmeldingType): Boolean { when (dialogmeldingType) { DialogmeldingType.DIALOGMELDING_DIALOGMOTE_INNKALLING_MOTERESPONS -> { val kodeverkOID = xmlDialogmelding.notat.first().temaKodet.s @@ -17,6 +22,10 @@ fun isKodeverkValid(xmlDialogmelding: XMLDialogmelding, dialogmeldingType: Dialo val kodeverkOID = xmlDialogmelding.notat.first().temaKodet.s val versjon = xmlDialogmelding.notat.first().temaKodet.v val xmlDialogmeldingKodeverk = findDialogmeldingKodeverk(kodeverkOID, versjon) + val foresporselKodeverk = xmlDialogmelding.foresporsel.firstOrNull()?.typeForesp?.s + if (foresporselKodeverk == DialogmeldingKodeverk.INNKALLING_DIALOGMOTE_KODEVERK.kodeverkOID) { + logger.warn("Invalid kodeverk: Received foresporselsvar for foresporsel with dialogmøte kodeverk: $msgId") + } val gyldigeDialogmeldingKodeverk = DialogmeldingType.DIALOGMELDING_FORESPORSEL_FRA_SAKSBEHANDLER_FORESPORSEL_SVAR.dialogmeldingKodeverk return gyldigeDialogmeldingKodeverk.contains(xmlDialogmeldingKodeverk) } From 0cb38a8e0e53daa21d834f38be14f2b0a94c5659 Mon Sep 17 00:00:00 2001 From: geir-waagboe Date: Mon, 10 Mar 2025 13:26:24 +0100 Subject: [PATCH 2/3] IS-3152: Log warning when wrong combination --- src/main/kotlin/no/nav/syfo/model/DialogmeldingKodeverk.kt | 2 +- .../no/nav/syfo/validation/ValidateDialogMeldingKodeverk.kt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/kotlin/no/nav/syfo/model/DialogmeldingKodeverk.kt b/src/main/kotlin/no/nav/syfo/model/DialogmeldingKodeverk.kt index 20540c22..89d51779 100644 --- a/src/main/kotlin/no/nav/syfo/model/DialogmeldingKodeverk.kt +++ b/src/main/kotlin/no/nav/syfo/model/DialogmeldingKodeverk.kt @@ -11,7 +11,7 @@ enum class DialogmeldingKodeverk( PRODUKSJON_AV_NOTAT_FORFATTER("2.16.578.1.12.4.1.1.9057", "Forfatter", "1", "", "", ""), INNKALLING_DIALOGMOTE_KODEVERK( "2.16.578.1.12.4.1.1.8125", - "", + "Innkalling dialogmøte", "", "", "", diff --git a/src/main/kotlin/no/nav/syfo/validation/ValidateDialogMeldingKodeverk.kt b/src/main/kotlin/no/nav/syfo/validation/ValidateDialogMeldingKodeverk.kt index 287df09e..d0d287bb 100644 --- a/src/main/kotlin/no/nav/syfo/validation/ValidateDialogMeldingKodeverk.kt +++ b/src/main/kotlin/no/nav/syfo/validation/ValidateDialogMeldingKodeverk.kt @@ -24,7 +24,7 @@ fun isKodeverkValid(msgId: String, xmlDialogmelding: XMLDialogmelding, dialogmel val xmlDialogmeldingKodeverk = findDialogmeldingKodeverk(kodeverkOID, versjon) val foresporselKodeverk = xmlDialogmelding.foresporsel.firstOrNull()?.typeForesp?.s if (foresporselKodeverk == DialogmeldingKodeverk.INNKALLING_DIALOGMOTE_KODEVERK.kodeverkOID) { - logger.warn("Invalid kodeverk: Received foresporselsvar for foresporsel with dialogmøte kodeverk: $msgId") + logger.warn("Invalid kodeverk: Received foresporselsvar for foresporsel with dialogmotekodeverk: $msgId") } val gyldigeDialogmeldingKodeverk = DialogmeldingType.DIALOGMELDING_FORESPORSEL_FRA_SAKSBEHANDLER_FORESPORSEL_SVAR.dialogmeldingKodeverk return gyldigeDialogmeldingKodeverk.contains(xmlDialogmeldingKodeverk) From cfa5548775b1cc5283aa9aaa1a36f885a240d7f7 Mon Sep 17 00:00:00 2001 From: geir-waagboe Date: Mon, 10 Mar 2025 13:43:12 +0100 Subject: [PATCH 3/3] IS-3152: Log warning when wrong combination --- .../no/nav/syfo/ValidateDialogMeldingKodeverkTest.kt | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/test/kotlin/no/nav/syfo/ValidateDialogMeldingKodeverkTest.kt b/src/test/kotlin/no/nav/syfo/ValidateDialogMeldingKodeverkTest.kt index 49b036a3..48d6090f 100644 --- a/src/test/kotlin/no/nav/syfo/ValidateDialogMeldingKodeverkTest.kt +++ b/src/test/kotlin/no/nav/syfo/ValidateDialogMeldingKodeverkTest.kt @@ -9,9 +9,12 @@ import no.nav.syfo.util.safeUnmarshal import no.nav.syfo.validation.isKodeverkValid import org.amshove.kluent.shouldBe import org.junit.jupiter.api.Test +import java.util.* internal class ValidateDialogMeldingKodeverkTest { + val msgId = UUID.randomUUID().toString() + @Test internal fun `Should be invalid dialogmeldingkodeverk combo`() { val felleformatDm = safeUnmarshal( @@ -23,7 +26,7 @@ internal class ValidateDialogMeldingKodeverkTest { val dialogmeldingType = findDialogmeldingType(emottakblokk.ebService, emottakblokk.ebAction) - val validateDialogMeldingKodeverk = isKodeverkValid(dialomeldingxml, dialogmeldingType) + val validateDialogMeldingKodeverk = isKodeverkValid(msgId, dialomeldingxml, dialogmeldingType) validateDialogMeldingKodeverk shouldBe false } @@ -39,7 +42,7 @@ internal class ValidateDialogMeldingKodeverkTest { val dialogmeldingType = findDialogmeldingType(emottakblokk.ebService, emottakblokk.ebAction) - val validateDialogMeldingKodeverk = isKodeverkValid(dialomeldingxml, dialogmeldingType) + val validateDialogMeldingKodeverk = isKodeverkValid(msgId, dialomeldingxml, dialogmeldingType) validateDialogMeldingKodeverk shouldBe true } @@ -57,7 +60,7 @@ internal class ValidateDialogMeldingKodeverkTest { val dialogmeldingType = findDialogmeldingType(emottakblokk.ebService, emottakblokk.ebAction) - val validateDialogMeldingKodeverk = isKodeverkValid(dialogmeldingxml, dialogmeldingType) + val validateDialogMeldingKodeverk = isKodeverkValid(msgId, dialogmeldingxml, dialogmeldingType) validateDialogMeldingKodeverk shouldBe false }