Skip to content

Commit

Permalink
Splitter opp i behandlingstatus og behandlingresultat 🖖
Browse files Browse the repository at this point in the history
- La til noen søte TODO's
- Fikser på timestamps i testene

Co-authored-by: Morten Tholander <[email protected]>
Co-authored-by: Simen Ullern <[email protected]>
Co-authored-by: Marte Tårnes <[email protected]>
  • Loading branch information
4 people committed Feb 1, 2024
1 parent 311943d commit 420da44
Show file tree
Hide file tree
Showing 6 changed files with 115 additions and 87 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -36,20 +36,33 @@ internal data class Behandling(
internal val tekniskTid: LocalDateTime, // Tidspunktet da fagsystemet legger hendelsen på grensesnittet/topicen.
internal val behandlingstatus: Behandlingstatus,
internal val behandlingstype: Behandlingstype,
internal val behandlingsresultat: Behandlingsresultat?,
internal val behandlingskilde: Behandlingskilde,
internal val versjon: Versjon = NåværendeVersjon
) {
internal enum class Behandlingstatus {
KomplettFraBruker,
AvsluttetUtenVedtak,
AvsluttetMedVedtak,
BehandlesIInfotrygd
Registrert,
Avsluttet
}

internal enum class Behandlingstype {
Førstegangsbehandling,
Omgjøring,
Revurdering,
TilInfotrygd
TilInfotrygd // TODO: Drep mig
}

internal enum class Behandlingsresultat {
Vedtatt, // Per nå har vi ikke nok info til å utlede innvilget/delvisInnvilget/avslag, så alt sendes som ☂️-betegnelsen Vedtatt
Henlagt,
Avbrutt
}

internal enum class Behandlingskilde {
Sykmeldt,
Arbeidsgiver,
Saksbehandler,
System
}

private fun funksjoneltLik(other: Behandling): Boolean {
Expand All @@ -64,12 +77,16 @@ internal data class Behandling(
class Builder(private val forrige: Behandling) {
private lateinit var funksjonellTid: LocalDateTime // Denne _må_ alltid settes

private var behandlingStatus: Behandlingstatus? = null

private var behandlingType: Behandlingstype? = null
private var behandlingstatus: Behandlingstatus? = null
private var behandlingtype: Behandlingstype? = null
private var behandlingsresultat: Behandlingsresultat? = null
private var behandlingskilde: Behandlingskilde? = null

internal fun funksjonellTid(funksjonellTid: LocalDateTime) = apply { this.funksjonellTid = funksjonellTid }
internal fun behandlingStatus(behandlingStatus: Behandlingstatus) = apply { this.behandlingStatus = behandlingStatus }
internal fun behandlingstatus(behandlingstatus: Behandlingstatus) = apply { this.behandlingstatus = behandlingstatus }
internal fun behandlingtype(behandlingtype: Behandlingstype) = apply { this.behandlingtype = behandlingtype }
internal fun behandlingsresultat(behandlingsresultat: Behandlingsresultat) = apply { this.behandlingsresultat = behandlingsresultat }
internal fun behandlingskilde(behandlingskilde: Behandlingskilde) = apply { this.behandlingskilde = behandlingskilde }

internal fun build(): Behandling? {
val ny = Behandling(
Expand All @@ -81,8 +98,10 @@ internal data class Behandling(
registrertTid = forrige.registrertTid,
funksjonellTid = funksjonellTid,
tekniskTid = LocalDateTime.now(),
behandlingstatus = behandlingStatus ?: forrige.behandlingstatus,
behandlingstype = behandlingType ?: forrige.behandlingstype,
behandlingstatus = behandlingstatus ?: forrige.behandlingstatus,
behandlingstype = behandlingtype ?: forrige.behandlingstype,
behandlingsresultat = behandlingsresultat ?: forrige.behandlingsresultat,
behandlingskilde = behandlingskilde ?: forrige.behandlingskilde
)
if (ny.funksjoneltLik(forrige)) return null // Ikke noe ny info
return ny
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,8 @@ internal class AvsluttetMedVedtak(
override fun håndter(behandlingDao: BehandlingDao) {
val builder = behandlingDao.initialiser(BehandlingId(generasjonId)) ?: return // Avsluttet med vedtak for noe vi ikke har fått generasjon opprettet for
val ny = builder
.behandlingStatus(Behandling.Behandlingstatus.AvsluttetMedVedtak)
.behandlingstatus(Behandling.Behandlingstatus.Avsluttet)
.behandlingsresultat(Behandling.Behandlingsresultat.Vedtatt)
.funksjonellTid(opprettet)
.build()
?: return // Ikke noe endring
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,8 @@ internal class AvsluttetUtenVedtak(
override fun håndter(behandlingDao: BehandlingDao) {
val builder = behandlingDao.initialiser(BehandlingId(generasjonId)) ?: return // Avsluttet uten vedtak for noe vi ikke har fått generasjon opprettet for
val ny = builder
.behandlingStatus(Behandling.Behandlingstatus.AvsluttetUtenVedtak)
.behandlingstatus(Behandling.Behandlingstatus.Avsluttet)
.behandlingsresultat(Behandling.Behandlingsresultat.Henlagt)
.funksjonellTid(opprettet)
.build()
?: return // Ikke noe endring
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,8 @@ internal class GenerasjonForkastet(
override fun håndter(behandlingDao: BehandlingDao) {
val builder = behandlingDao.initialiser(BehandlingId(generasjonId)) ?: return
val ny = builder
.behandlingStatus(Behandling.Behandlingstatus.BehandlesIInfotrygd)
.behandlingstatus(Behandling.Behandlingstatus.Avsluttet)
.behandlingsresultat(Behandling.Behandlingsresultat.Avbrutt)
.funksjonellTid(opprettet)
.build()
?: return
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,14 +32,11 @@ internal class GenerasjonOpprettet(
registrertTid = registrert,
funksjonellTid = registrert,
tekniskTid = LocalDateTime.now(),
behandlingstatus = bestemBehandlingstatus(),
behandlingstatus = Behandling.Behandlingstatus.Registrert,
behandlingstype = behandlingType,
behandlingskilde = Behandling.Behandlingskilde.Sykmeldt, // TODO
behandlingsresultat = null
)
behandlingDao.lagre(behandling)
}

private fun bestemBehandlingstatus() =
if (behandlingType == Behandling.Behandlingstype.TilInfotrygd) Behandling.Behandlingstatus.BehandlesIInfotrygd else Behandling.Behandlingstatus.KomplettFraBruker


}
Loading

0 comments on commit 420da44

Please sign in to comment.