From ca6b96a775d80d3cffc59ef4de96aec3d8b0a279 Mon Sep 17 00:00:00 2001 From: jaflaten Date: Thu, 12 Dec 2024 08:07:17 +0100 Subject: [PATCH] chore: adding korriger sykmelding functionality (#372) Co-authored-by: Helene Arnesen --- .../NasjonalSykmeldingService.kt | 17 ++++++++++++++--- .../api/NasjonalOppgaveController.kt | 19 ++++--------------- 2 files changed, 18 insertions(+), 18 deletions(-) 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 8a5e0fd3..653f8daf 100644 --- a/src/main/kotlin/no/nav/sykdig/digitalisering/papirsykmelding/NasjonalSykmeldingService.kt +++ b/src/main/kotlin/no/nav/sykdig/digitalisering/papirsykmelding/NasjonalSykmeldingService.kt @@ -46,13 +46,24 @@ class NasjonalSykmeldingService( val log = applog() val securelog = securelog() + suspend fun korrigerSykmelding(sykmeldingId: String, navEnhet: String, callId: String, papirSykmelding: SmRegistreringManuell, authorization: String): ResponseEntity { + val oppgave = nasjonalOppgaveService.getOppgaveBySykmeldingId(sykmeldingId, authorization) ?: return ResponseEntity(HttpStatus.NOT_FOUND) + log.info("Forsøker å korriger sykmelding med sykmeldingId $sykmeldingId og oppgaveId ${oppgave.oppgaveId}") + return sendPapirsykmelding(papirSykmelding, navEnhet, callId, oppgave, authorization) + } - suspend fun sendPapirsykmelding(smRegistreringManuell: SmRegistreringManuell, navEnhet: String, callId: String, oppgaveId: String, authorization: String): ResponseEntity { + suspend fun sendPapirsykmeldingOppgave(papirSykmelding: SmRegistreringManuell, navEnhet: String, callId: String, oppgaveId: String, authorization: String): ResponseEntity { val oppgave = nasjonalOppgaveService.getOppgave(oppgaveId, authorization) ?: return ResponseEntity(HttpStatus.NOT_FOUND) if (oppgave.ferdigstilt) { log.info("Oppgave med id $oppgaveId er allerede ferdigstilt") return ResponseEntity(HttpStatus.NO_CONTENT) } + log.info("Forsøker å sende inn papirsykmelding med sykmeldingId ${oppgave.sykmeldingId} oppgaveId ${oppgave.oppgaveId}") + return sendPapirsykmelding(papirSykmelding, navEnhet, callId, oppgave, authorization, oppgaveId.toInt()) + + } + + suspend fun sendPapirsykmelding(smRegistreringManuell: SmRegistreringManuell, navEnhet: String, callId: String, oppgave: NasjonalManuellOppgaveDAO, authorization: String, oppgaveId: Int? = null): ResponseEntity { val sykmeldingId = oppgave.sykmeldingId log.info("Forsøker å ferdigstille papirsykmelding med sykmeldingId $sykmeldingId") @@ -77,7 +88,7 @@ class NasjonalSykmeldingService( val ferdigstillRegistrering = FerdigstillRegistrering( - oppgaveId = oppgaveId.toInt(), + oppgaveId = oppgave.oppgaveId, journalpostId = journalpostId, dokumentInfoId = dokumentInfoId, pasientFnr = receivedSykmelding.personNrPasient, @@ -90,7 +101,7 @@ class NasjonalSykmeldingService( ) if (!validationResult.ruleHits.isWhitelisted()) { - return handleBrokenRule(validationResult, oppgaveId.toInt()) + return handleBrokenRule(validationResult, oppgave.oppgaveId) } return handleOK(validationResult, receivedSykmelding.copy(validationResult = validationResult), ferdigstillRegistrering, loggingMeta, null, smRegistreringManuell) diff --git a/src/main/kotlin/no/nav/sykdig/digitalisering/papirsykmelding/api/NasjonalOppgaveController.kt b/src/main/kotlin/no/nav/sykdig/digitalisering/papirsykmelding/api/NasjonalOppgaveController.kt index b8cf88b4..92ee5da5 100644 --- a/src/main/kotlin/no/nav/sykdig/digitalisering/papirsykmelding/api/NasjonalOppgaveController.kt +++ b/src/main/kotlin/no/nav/sykdig/digitalisering/papirsykmelding/api/NasjonalOppgaveController.kt @@ -9,7 +9,6 @@ import no.nav.sykdig.digitalisering.papirsykmelding.NasjonalSykmeldingService import no.nav.sykdig.digitalisering.papirsykmelding.api.model.PapirManuellOppgave import no.nav.sykdig.digitalisering.papirsykmelding.api.model.SmRegistreringManuell import no.nav.sykdig.digitalisering.papirsykmelding.api.model.Sykmelder -import no.nav.sykdig.digitalisering.papirsykmelding.db.model.Utfall import no.nav.sykdig.digitalisering.pdl.Navn import no.nav.sykdig.digitalisering.pdl.PersonService import no.nav.sykdig.securelog @@ -117,7 +116,7 @@ class NasjonalOppgaveController( @RequestBody papirSykmelding: SmRegistreringManuell, ): ResponseEntity { val callId = UUID.randomUUID().toString() - return nasjonalSykmeldingService.sendPapirsykmelding(papirSykmelding, navEnhet, callId, oppgaveId, authorization) + return nasjonalSykmeldingService.sendPapirsykmeldingOppgave(papirSykmelding, navEnhet, callId, oppgaveId, authorization) } @@ -159,24 +158,14 @@ class NasjonalOppgaveController( @PostMapping("/sykmelding/{sykmeldingId}") @PreAuthorize("@oppgaveSecurityService.hasAccessToNasjonalSykmelding(#sykmeldingId, #authorization, '/sykmelding/{sykmeldingId}')") @WithSpan - fun korrigerSykmelding( + suspend fun korrigerSykmelding( @PathVariable sykmeldingId: String, @RequestHeader("Authorization") authorization: String, @RequestHeader("X-Nav-Enhet") navEnhet: String, @RequestBody papirSykmelding: SmRegistreringManuell, - ): ResponseEntity { - log.info("papirsykmelding: Korrrigerer sykmelding med id $sykmeldingId gjennom syk-dig proxy") - val res = smregistreringClient.postKorrigerSykmeldingRequest(authorization, sykmeldingId, navEnhet, papirSykmelding) - + ): ResponseEntity { securelog.info("Oppdaterer korrigert oppgave i syk-dig-backend db $papirSykmelding") - nasjonalOppgaveService.oppdaterOppgave( - sykmeldingId = sykmeldingId, - utfall = Utfall.OK.toString(), - ferdigstiltAv = nasjonalCommonService.getNavIdent().veilederIdent, - avvisningsgrunn = null, - smRegistreringManuell = papirSykmelding, - ) - return res + return nasjonalSykmeldingService.korrigerSykmelding(sykmeldingId, navEnhet, UUID.randomUUID().toString(), papirSykmelding, authorization) } @GetMapping("/pdf/{oppgaveId}/{dokumentInfoId}")