Skip to content

Commit

Permalink
IS-2114: Send arbeidsuforhet forhandsvarsel to docdist
Browse files Browse the repository at this point in the history
  • Loading branch information
vetlesolgaard committed Feb 27, 2024
1 parent 57f66d9 commit 74123ee
Show file tree
Hide file tree
Showing 9 changed files with 101 additions and 50 deletions.
2 changes: 2 additions & 0 deletions nais/nais-dev.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -129,6 +129,8 @@ spec:
value: "false"
- name: TOGGLE_SEND_AKTIVITETSPLIKT_FORHANDSVARSEL
value: "true"
- name: TOGGLE_SEND_ARBEIDSUFORHET_FORHANDSVARSEL
value: "false"
- name: BASE_URL_DIALOGMOTER
value: https://www.ekstern.dev.nav.no/syk/dialogmoter
- name: BASE_URL_OPPFOLGINGSPLANER
Expand Down
2 changes: 2 additions & 0 deletions nais/nais-prod.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -133,6 +133,8 @@ spec:
value: "false"
- name: TOGGLE_SEND_AKTIVITETSPLIKT_FORHANDSVARSEL
value: "true"
- name: TOGGLE_SEND_ARBEIDSUFORHET_FORHANDSVARSEL
value: "false"
- name: BASE_URL_DIALOGMOTER
value: https://www.nav.no/syk/dialogmoter
- name: BASE_URL_OPPFOLGINGSPLANER
Expand Down
3 changes: 3 additions & 0 deletions nais/topics/varselbus-topic-dev.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,9 @@ spec:
- team: teamsykefravr
application: isdialogmote
access: write
- team: teamsykefravr
application: isarbeidsuforhet
access: write
- team: teamsykefravr
application: isyfomock
access: write
Expand Down
3 changes: 3 additions & 0 deletions nais/topics/varselbus-topic-prod.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,9 @@ spec:
- team: teamsykefravr
application: isdialogmote
access: write
- team: teamsykefravr
application: isarbeidsuforhet
access: write
- team: team-esyfo
application: aktivitetskrav-backend
access: write
5 changes: 5 additions & 0 deletions src/main/kotlin/no/nav/syfo/BootstrapApplication.kt
Original file line number Diff line number Diff line change
Expand Up @@ -141,6 +141,10 @@ val engineEnvironment: ApplicationEngineEnvironment = applicationEngineEnvironme
env.urlEnv.urlAktivitetskravInfoPage,
env.toggleEnv.sendAktivitetspliktForhandsvarsel,
)
val arbeidsuforhetForhandsvarselService = ArbeidsuforhetForhandsvarselService(
senderFacade,
env.toggleEnv.sendArbeidsuforhetForhandsvarsel,
)
val oppfolgingsplanVarselService =
OppfolgingsplanVarselService(senderFacade, accessControlService, env.urlEnv.oppfolgingsplanerUrl)
val sykepengerMaxDateService = SykepengerMaxDateService(database, pdlConsumer)
Expand Down Expand Up @@ -169,6 +173,7 @@ val engineEnvironment: ApplicationEngineEnvironment = applicationEngineEnvironme
oppfolgingsplanVarselService,
dialogmoteInnkallingVarselService,
aktivitetspliktForhandsvarselVarselService,
arbeidsuforhetForhandsvarselService,
mikrofrontendService,
)

Expand Down
6 changes: 4 additions & 2 deletions src/main/kotlin/no/nav/syfo/Environment.kt
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ fun getEnv(): Environment {
dokumentarkivOppfolgingDocumentsPageUrl = getEnvVar("BASE_URL_DOKUMENTARKIV_OPPFOLGING_DOCUMENTS_PAGE"),
urlAktivitetskravInfoPage = getEnvVar("URL_AKTIVITETSKRAV_INFO_PAGE"),
baseUrlNavEkstern = getEnvVar("BASE_URL_NAV_EKSTERN")
),
),
KafkaEnv(
bootstrapServersUrl = getEnvVar("KAFKA_BOOTSTRAP_SERVERS_URL"),
schemaRegistry = KafkaSchemaRegistryEnv(
Expand All @@ -89,6 +89,7 @@ fun getEnv(): Environment {
),
ToggleEnv(
sendAktivitetspliktForhandsvarsel = getBooleanEnvVar("TOGGLE_SEND_AKTIVITETSPLIKT_FORHANDSVARSEL"),
sendArbeidsuforhetForhandsvarsel = getBooleanEnvVar("TOGGLE_SEND_ARBEIDSUFORHET_FORHANDSVARSEL"),
),
)
}
Expand Down Expand Up @@ -148,7 +149,7 @@ data class UrlEnv(
val dokumentarkivOppfolgingDocumentsPageUrl: String,
val urlAktivitetskravInfoPage: String,
val baseUrlNavEkstern: String,
)
)

data class KafkaEnv(
var bootstrapServersUrl: String,
Expand Down Expand Up @@ -179,6 +180,7 @@ data class DbEnv(

data class ToggleEnv(
val sendAktivitetspliktForhandsvarsel: Boolean,
val sendArbeidsuforhetForhandsvarsel: Boolean,
)

data class JobEnv(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -79,15 +79,13 @@ enum class HendelseType {
SM_DIALOGMOTE_NYTT_TID_STED,
SM_DIALOGMOTE_LEST,
SM_AKTIVITETSPLIKT,
SM_ARBEIDSUFORHET_FORHANDSVARSEL
}

fun ArbeidstakerHendelse.getSynligTom(): LocalDateTime? {
val eventType = this.type
if (eventType.isNotValidHendelseType()) {
throw IllegalArgumentException(
"${eventType.name} er ikke gyldig hendelse for å hente ut " +
"'synligTom'-felt",
)
throw IllegalArgumentException("${eventType.name} er ikke gyldig hendelse for å hente ut 'synligTom'-felt")
}
if (eventType.isAktivitetspliktType()) {
return LocalDateTime.now().plusDays(30L)
Expand Down Expand Up @@ -141,13 +139,12 @@ fun HendelseType.isDialogmoteInnkallingType() = this in listOf(
HendelseType.SM_DIALOGMOTE_SVAR_MOTEBEHOV,
)

fun HendelseType.isDialogmoteType() = this.isDialogmoteInnkallingType() or (
this in listOf(
fun HendelseType.isDialogmoteType() =
this.isDialogmoteInnkallingType() or (this in listOf(
HendelseType.SM_DIALOGMOTE_AVLYST,
HendelseType.SM_DIALOGMOTE_REFERAT,
HendelseType.SM_DIALOGMOTE_LEST,
)
)
))

fun ArbeidstakerHendelse.notCorrectMikrofrontendType() =
!(this.type.isDialogmoteType() or this.type.isAktivitetspliktType())
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
package no.nav.syfo.service

import no.nav.syfo.consumer.distribuerjournalpost.DistibusjonsType
import no.nav.syfo.kafka.consumers.varselbus.domain.ArbeidstakerHendelse
import no.nav.syfo.utils.dataToVarselData
import org.slf4j.LoggerFactory

class ArbeidsuforhetForhandsvarselService(
private val senderFacade: SenderFacade,
private val isSendingEnabled: Boolean,
) {
suspend fun sendVarselTilArbeidstaker(varselHendelse: ArbeidstakerHendelse) {
if (isSendingEnabled) {
log.info("[ARBEIDSUFORHET_FORHAANDSVARSEL] sending enabled")
val data = dataToVarselData(varselHendelse.data)
requireNotNull(data.journalpost)
requireNotNull(data.journalpost.id)

log.info("Sending [ARBEIDSUFORHET_FORHAANDSVARSEL] to print")
senderFacade.sendBrevTilFysiskPrint(
data.journalpost.uuid,
varselHendelse,
data.journalpost.id,
DistibusjonsType.VIKTIG,
)
}
}

companion object {
private val log = LoggerFactory.getLogger(ArbeidsuforhetForhandsvarselService::class.qualifiedName)
}
}
85 changes: 45 additions & 40 deletions src/main/kotlin/no/nav/syfo/service/VarselBusService.kt
Original file line number Diff line number Diff line change
Expand Up @@ -8,58 +8,63 @@ import org.slf4j.LoggerFactory

class VarselBusService(
val senderFacade: SenderFacade,
val motebehovVarselService: MotebehovVarselService,
val oppfolgingsplanVarselService: OppfolgingsplanVarselService,
val dialogmoteInnkallingVarselService: DialogmoteInnkallingVarselService,
val aktivitetspliktForhandsvarselVarselService: AktivitetspliktForhandsvarselVarselService,
val mikrofrontendService: MikrofrontendService,
private val motebehovVarselService: MotebehovVarselService,
private val oppfolgingsplanVarselService: OppfolgingsplanVarselService,
private val dialogmoteInnkallingVarselService: DialogmoteInnkallingVarselService,
private val aktivitetspliktForhandsvarselVarselService: AktivitetspliktForhandsvarselVarselService,
private val arbeidsuforhetForhandsvarselService: ArbeidsuforhetForhandsvarselService,
private val mikrofrontendService: MikrofrontendService,
) {
private val log: Logger = LoggerFactory.getLogger(VarselBusService::class.qualifiedName)
suspend fun processVarselHendelse(
varselHendelse: EsyfovarselHendelse,
) {
if (varselHendelse.skalFerdigstilles()) {
ferdigstillVarsel(varselHendelse)
} else {
when (varselHendelse.type) {
NL_OPPFOLGINGSPLAN_SENDT_TIL_GODKJENNING -> oppfolgingsplanVarselService.sendVarselTilNarmesteLeder(
varselHendelse.toNarmestelederHendelse()
)
if (varselHendelse.skalFerdigstilles()) {
ferdigstillVarsel(varselHendelse)
} else {
when (varselHendelse.type) {
NL_OPPFOLGINGSPLAN_SENDT_TIL_GODKJENNING -> oppfolgingsplanVarselService.sendVarselTilNarmesteLeder(
varselHendelse.toNarmestelederHendelse()
)

SM_OPPFOLGINGSPLAN_SENDT_TIL_GODKJENNING -> oppfolgingsplanVarselService.sendVarselTilArbeidstaker(
varselHendelse.toArbeidstakerHendelse()
)

SM_OPPFOLGINGSPLAN_SENDT_TIL_GODKJENNING -> oppfolgingsplanVarselService.sendVarselTilArbeidstaker(
varselHendelse.toArbeidstakerHendelse()
)
NL_DIALOGMOTE_SVAR_MOTEBEHOV -> motebehovVarselService.sendVarselTilNarmesteLeder(varselHendelse.toNarmestelederHendelse())
SM_DIALOGMOTE_SVAR_MOTEBEHOV -> motebehovVarselService.sendVarselTilArbeidstaker(varselHendelse.toArbeidstakerHendelse())
NL_DIALOGMOTE_MOTEBEHOV_TILBAKEMELDING -> motebehovVarselService.sendMotebehovTilbakemeldingTilNarmesteLeder(
varselHendelse.toNarmestelederHendelse()
)

NL_DIALOGMOTE_SVAR_MOTEBEHOV -> motebehovVarselService.sendVarselTilNarmesteLeder(varselHendelse.toNarmestelederHendelse())
SM_DIALOGMOTE_SVAR_MOTEBEHOV -> motebehovVarselService.sendVarselTilArbeidstaker(varselHendelse.toArbeidstakerHendelse())
NL_DIALOGMOTE_MOTEBEHOV_TILBAKEMELDING -> motebehovVarselService.sendMotebehovTilbakemeldingTilNarmesteLeder(
varselHendelse.toNarmestelederHendelse()
)
SM_DIALOGMOTE_MOTEBEHOV_TILBAKEMELDING -> motebehovVarselService.sendMotebehovTilbakemeldingTilArbeidstaker(
varselHendelse.toArbeidstakerHendelse()
)

SM_DIALOGMOTE_MOTEBEHOV_TILBAKEMELDING -> motebehovVarselService.sendMotebehovTilbakemeldingTilArbeidstaker(
varselHendelse.toArbeidstakerHendelse()
)
NL_DIALOGMOTE_INNKALT,
NL_DIALOGMOTE_AVLYST,
NL_DIALOGMOTE_REFERAT,
NL_DIALOGMOTE_NYTT_TID_STED,
-> dialogmoteInnkallingVarselService.sendVarselTilNarmesteLeder(varselHendelse.toNarmestelederHendelse())

NL_DIALOGMOTE_INNKALT,
NL_DIALOGMOTE_AVLYST,
NL_DIALOGMOTE_REFERAT,
NL_DIALOGMOTE_NYTT_TID_STED,
-> dialogmoteInnkallingVarselService.sendVarselTilNarmesteLeder(varselHendelse.toNarmestelederHendelse())
SM_DIALOGMOTE_INNKALT,
SM_DIALOGMOTE_AVLYST,
SM_DIALOGMOTE_REFERAT,
SM_DIALOGMOTE_NYTT_TID_STED,
SM_DIALOGMOTE_LEST,
-> dialogmoteInnkallingVarselService.sendVarselTilArbeidstaker(varselHendelse.toArbeidstakerHendelse())

SM_DIALOGMOTE_INNKALT,
SM_DIALOGMOTE_AVLYST,
SM_DIALOGMOTE_REFERAT,
SM_DIALOGMOTE_NYTT_TID_STED,
SM_DIALOGMOTE_LEST,
-> dialogmoteInnkallingVarselService.sendVarselTilArbeidstaker(varselHendelse.toArbeidstakerHendelse())
SM_AKTIVITETSPLIKT -> aktivitetspliktForhandsvarselVarselService.sendVarselTilArbeidstaker(
varselHendelse.toArbeidstakerHendelse()
)

SM_AKTIVITETSPLIKT -> aktivitetspliktForhandsvarselVarselService.sendVarselTilArbeidstaker(
varselHendelse.toArbeidstakerHendelse()
)
SM_ARBEIDSUFORHET_FORHANDSVARSEL -> arbeidsuforhetForhandsvarselService.sendVarselTilArbeidstaker(
varselHendelse.toArbeidstakerHendelse()
)

else -> {
log.warn("Klarte ikke mappe varsel av type ${varselHendelse.type} ved behandling forsøk")
}
else -> {
log.warn("Klarte ikke mappe varsel av type ${varselHendelse.type} ved behandling forsøk")
}
}
}
}
Expand Down

0 comments on commit 74123ee

Please sign in to comment.