From 3f250c5e7813b95e07df4bd1e51ec0084087c4b3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B8rn-Are=20Flaten?= Date: Thu, 5 Dec 2024 15:59:24 +0100 Subject: [PATCH] chore: updating db values based on user input --- .../papirsykmelding/NasjonalOppgaveService.kt | 61 ++++++++++++++++--- .../NasjonalSykmeldingService.kt | 4 +- 2 files changed, 56 insertions(+), 9 deletions(-) diff --git a/src/main/kotlin/no/nav/sykdig/digitalisering/papirsykmelding/NasjonalOppgaveService.kt b/src/main/kotlin/no/nav/sykdig/digitalisering/papirsykmelding/NasjonalOppgaveService.kt index 106f66de..b7b9db5f 100644 --- a/src/main/kotlin/no/nav/sykdig/digitalisering/papirsykmelding/NasjonalOppgaveService.kt +++ b/src/main/kotlin/no/nav/sykdig/digitalisering/papirsykmelding/NasjonalOppgaveService.kt @@ -13,6 +13,7 @@ import no.nav.sykdig.digitalisering.papirsykmelding.api.model.Document import no.nav.sykdig.digitalisering.papirsykmelding.api.model.FerdigstillRegistrering import no.nav.sykdig.digitalisering.papirsykmelding.api.model.PapirManuellOppgave import no.nav.sykdig.digitalisering.papirsykmelding.api.model.PapirSmRegistering +import no.nav.sykdig.digitalisering.papirsykmelding.api.model.SmRegistreringManuell import no.nav.sykdig.digitalisering.papirsykmelding.db.NasjonalOppgaveRepository import no.nav.sykdig.digitalisering.papirsykmelding.db.model.NasjonalManuellOppgaveDAO import no.nav.sykdig.digitalisering.papirsykmelding.db.model.Utfall @@ -49,23 +50,66 @@ class NasjonalOppgaveService( } val res = nasjonalOppgaveRepository.save(mapToDao(papirManuellOppgave, null)) log.info("Lagret oppgave med sykmeldingId ${res.sykmeldingId} og med database id ${eksisterendeOppgave?.id}") - securelog.info("Lagret oppgave med sykmeldingId ${res.sykmeldingId} og med database id ${eksisterendeOppgave?.id} og som dette objetket: $res") + securelog.info("Lagret oppgave med sykmeldingId ${res.sykmeldingId} og med database id ${eksisterendeOppgave?.id} og som dette objektet: $res") return res } - fun oppdaterOppgave(sykmeldingId: String, utfall: String, ferdigstiltAv: String, avvisningsgrunn: String?): NasjonalManuellOppgaveDAO? { - val updated = nasjonalOppgaveRepository.findBySykmeldingId(sykmeldingId)?.copy( + fun oppdaterOppgave(sykmeldingId: String, utfall: String, ferdigstiltAv: String, avvisningsgrunn: String?, smRegistreringManuell: SmRegistreringManuell?): NasjonalManuellOppgaveDAO? { +// val updated = nasjonalOppgaveRepository.findBySykmeldingId(sykmeldingId)?.copy( +// utfall = utfall, +// ferdigstiltAv = ferdigstiltAv, +// avvisningsgrunn = avvisningsgrunn, +// datoFerdigstilt = LocalDateTime.now(), +// ferdigstilt = true, +// +// +// ) +// when (updated) { +// null -> log.info("Sykmelding $sykmeldingId not found ") +// else -> { +// securelog.info("Lagret oppgave med sykmeldingId ${updated.sykmeldingId} og med database id ${updated?.id} og som dette objektet: $updated") +// nasjonalOppgaveRepository.save(updated) +// } +// } +// return updated + + val existingOppgave = nasjonalOppgaveRepository.findBySykmeldingId(sykmeldingId) + + if (existingOppgave == null) { + log.info("Sykmelding $sykmeldingId not found") + return null + } + + val updatedOppgave = existingOppgave.copy( utfall = utfall, ferdigstiltAv = ferdigstiltAv, avvisningsgrunn = avvisningsgrunn, datoFerdigstilt = LocalDateTime.now(), ferdigstilt = true, + papirSmRegistrering = mapToUpdatedPapirSmRegistrering(existingOppgave, smRegistreringManuell) ) - when (updated) { - null -> log.info("Sykmelding $sykmeldingId not found ") - else -> nasjonalOppgaveRepository.save(updated) - } - return updated + + securelog.info("Lagret oppgave med sykmeldingId ${updatedOppgave.sykmeldingId} og med database id ${updatedOppgave.id} som dette objektet: $updatedOppgave") + return nasjonalOppgaveRepository.save(updatedOppgave) + } + + private fun mapToUpdatedPapirSmRegistrering(existingOppgave: NasjonalManuellOppgaveDAO, smRegistreringManuell: SmRegistreringManuell?): PapirSmRegistering { + val updatedPapirSmRegistrering = existingOppgave.papirSmRegistrering.copy( + meldingTilArbeidsgiver = smRegistreringManuell?.meldingTilArbeidsgiver + ?: existingOppgave.papirSmRegistrering.meldingTilArbeidsgiver, + medisinskVurdering = smRegistreringManuell?.medisinskVurdering ?: existingOppgave.papirSmRegistrering.medisinskVurdering, + meldingTilNAV = smRegistreringManuell?.meldingTilNAV ?: existingOppgave.papirSmRegistrering.meldingTilNAV, + arbeidsgiver = smRegistreringManuell?.arbeidsgiver ?: existingOppgave.papirSmRegistrering.arbeidsgiver, + kontaktMedPasient = smRegistreringManuell?.kontaktMedPasient ?: existingOppgave.papirSmRegistrering.kontaktMedPasient, + perioder = smRegistreringManuell?.perioder ?: existingOppgave.papirSmRegistrering.perioder, + behandletTidspunkt = smRegistreringManuell?.behandletDato ?: existingOppgave.papirSmRegistrering.behandletTidspunkt, + syketilfelleStartDato = smRegistreringManuell?.syketilfelleStartDato ?: existingOppgave.papirSmRegistrering.syketilfelleStartDato, + behandler = smRegistreringManuell?.behandler ?: existingOppgave.papirSmRegistrering.behandler, + skjermesForPasient = smRegistreringManuell?.skjermesForPasient ?: existingOppgave.papirSmRegistrering.skjermesForPasient, + ) + + securelog.info("Updated papirSmRegistrering: $updatedPapirSmRegistrering to be saved in syk-dig-backend db nasjonal_manuellOppgave") + return updatedPapirSmRegistrering } @@ -121,6 +165,7 @@ class NasjonalOppgaveService( utfall = Utfall.AVVIST.toString(), ferdigstiltAv = veilederIdent, avvisningsgrunn = avvisningsgrunn, + null ) log.info("Har avvist oppgave med oppgaveId $oppgaveId") diff --git a/src/main/kotlin/no/nav/sykdig/digitalisering/papirsykmelding/NasjonalSykmeldingService.kt b/src/main/kotlin/no/nav/sykdig/digitalisering/papirsykmelding/NasjonalSykmeldingService.kt index dfd6e181..c48ab4e7 100644 --- a/src/main/kotlin/no/nav/sykdig/digitalisering/papirsykmelding/NasjonalSykmeldingService.kt +++ b/src/main/kotlin/no/nav/sykdig/digitalisering/papirsykmelding/NasjonalSykmeldingService.kt @@ -101,7 +101,7 @@ class NasjonalSykmeldingService( return handleBrokenRule(validationResult, oppgaveId.toInt()) } - return handleOK(validationResult, receivedSykmelding.copy(validationResult = validationResult), ferdigstillRegistrering, loggingMeta, null) + return handleOK(validationResult, receivedSykmelding.copy(validationResult = validationResult), ferdigstillRegistrering, loggingMeta, null, smRegistreringManuell) } private suspend fun handleOK( @@ -110,6 +110,7 @@ class NasjonalSykmeldingService( ferdigstillRegistrering: FerdigstillRegistrering, loggingMeta: LoggingMeta, avvisningsgrunn: String?, + smRegistreringManuell: SmRegistreringManuell, ): ResponseEntity { if (validationResult.status == Status.OK || validationResult.status == Status.MANUAL_PROCESSING) { val veileder = oppgaveSecurityService.getNavIdent() @@ -132,6 +133,7 @@ class NasjonalSykmeldingService( utfall = validationResult.status.toString(), ferdigstiltAv = veileder.veilederIdent, avvisningsgrunn = avvisningsgrunn, + smRegistreringManuell = smRegistreringManuell, ) log.info("Ferdigstilt papirsykmelding med sykmelding id ${receivedSykmelding.sykmelding.id}") return ResponseEntity(HttpStatus.OK)