Skip to content

Commit

Permalink
Ny regletre for HPR, mer lesbart (#195)
Browse files Browse the repository at this point in the history
* update rules for HPR

* update naming

---------

Co-authored-by: Joakim Taule Kartveit <[email protected]>
  • Loading branch information
andreasDev and MikAoJk authored Oct 13, 2023
1 parent 3c21baa commit 987e4ab
Show file tree
Hide file tree
Showing 7 changed files with 1,118 additions and 423 deletions.
28 changes: 20 additions & 8 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -136,14 +136,26 @@ graph TD
HPR
```mermaid
graph TD
root(BEHANDLER_IKKE_GYLDIG_I_HPR) -->|Yes| root_BEHANDLER_IKKE_GYLDIG_I_HPR_INVALID(INVALID):::invalid
root(BEHANDLER_IKKE_GYLDIG_I_HPR) -->|No| root_BEHANDLER_IKKE_GYLDIG_I_HPR_BEHANDLER_MANGLER_AUTORISASJON_I_HPR(BEHANDLER_MANGLER_AUTORISASJON_I_HPR)
root_BEHANDLER_IKKE_GYLDIG_I_HPR_BEHANDLER_MANGLER_AUTORISASJON_I_HPR(BEHANDLER_MANGLER_AUTORISASJON_I_HPR) -->|Yes| root_BEHANDLER_IKKE_GYLDIG_I_HPR_BEHANDLER_MANGLER_AUTORISASJON_I_HPR_INVALID(INVALID):::invalid
root_BEHANDLER_IKKE_GYLDIG_I_HPR_BEHANDLER_MANGLER_AUTORISASJON_I_HPR(BEHANDLER_MANGLER_AUTORISASJON_I_HPR) -->|No| root_BEHANDLER_IKKE_GYLDIG_I_HPR_BEHANDLER_MANGLER_AUTORISASJON_I_HPR_BEHANDLER_IKKE_LE_KI_MT_TL_FT_I_HPR(BEHANDLER_IKKE_LE_KI_MT_TL_FT_I_HPR)
root_BEHANDLER_IKKE_GYLDIG_I_HPR_BEHANDLER_MANGLER_AUTORISASJON_I_HPR_BEHANDLER_IKKE_LE_KI_MT_TL_FT_I_HPR(BEHANDLER_IKKE_LE_KI_MT_TL_FT_I_HPR) -->|Yes| root_BEHANDLER_IKKE_GYLDIG_I_HPR_BEHANDLER_MANGLER_AUTORISASJON_I_HPR_BEHANDLER_IKKE_LE_KI_MT_TL_FT_I_HPR_INVALID(INVALID):::invalid
root_BEHANDLER_IKKE_GYLDIG_I_HPR_BEHANDLER_MANGLER_AUTORISASJON_I_HPR_BEHANDLER_IKKE_LE_KI_MT_TL_FT_I_HPR(BEHANDLER_IKKE_LE_KI_MT_TL_FT_I_HPR) -->|No| root_BEHANDLER_IKKE_GYLDIG_I_HPR_BEHANDLER_MANGLER_AUTORISASJON_I_HPR_BEHANDLER_IKKE_LE_KI_MT_TL_FT_I_HPR_BEHANDLER_MT_FT_KI_OVER_12_UKER(BEHANDLER_MT_FT_KI_OVER_12_UKER)
root_BEHANDLER_IKKE_GYLDIG_I_HPR_BEHANDLER_MANGLER_AUTORISASJON_I_HPR_BEHANDLER_IKKE_LE_KI_MT_TL_FT_I_HPR_BEHANDLER_MT_FT_KI_OVER_12_UKER(BEHANDLER_MT_FT_KI_OVER_12_UKER) -->|Yes| root_BEHANDLER_IKKE_GYLDIG_I_HPR_BEHANDLER_MANGLER_AUTORISASJON_I_HPR_BEHANDLER_IKKE_LE_KI_MT_TL_FT_I_HPR_BEHANDLER_MT_FT_KI_OVER_12_UKER_INVALID(INVALID):::invalid
root_BEHANDLER_IKKE_GYLDIG_I_HPR_BEHANDLER_MANGLER_AUTORISASJON_I_HPR_BEHANDLER_IKKE_LE_KI_MT_TL_FT_I_HPR_BEHANDLER_MT_FT_KI_OVER_12_UKER(BEHANDLER_MT_FT_KI_OVER_12_UKER) -->|No| root_BEHANDLER_IKKE_GYLDIG_I_HPR_BEHANDLER_MANGLER_AUTORISASJON_I_HPR_BEHANDLER_IKKE_LE_KI_MT_TL_FT_I_HPR_BEHANDLER_MT_FT_KI_OVER_12_UKER_OK(OK):::ok
root(BEHANDLER_GYLIDG_I_HPR) -->|Yes| root_BEHANDLER_GYLIDG_I_HPR_BEHANDLER_HAR_AUTORISASJON_I_HPR(BEHANDLER_HAR_AUTORISASJON_I_HPR)
root_BEHANDLER_GYLIDG_I_HPR_BEHANDLER_HAR_AUTORISASJON_I_HPR(BEHANDLER_HAR_AUTORISASJON_I_HPR) -->|Yes| root_BEHANDLER_GYLIDG_I_HPR_BEHANDLER_HAR_AUTORISASJON_I_HPR_BEHANDLER_ER_LEGE_I_HPR(BEHANDLER_ER_LEGE_I_HPR)
root_BEHANDLER_GYLIDG_I_HPR_BEHANDLER_HAR_AUTORISASJON_I_HPR_BEHANDLER_ER_LEGE_I_HPR(BEHANDLER_ER_LEGE_I_HPR) -->|Yes| root_BEHANDLER_GYLIDG_I_HPR_BEHANDLER_HAR_AUTORISASJON_I_HPR_BEHANDLER_ER_LEGE_I_HPR_OK(OK):::ok
root_BEHANDLER_GYLIDG_I_HPR_BEHANDLER_HAR_AUTORISASJON_I_HPR_BEHANDLER_ER_LEGE_I_HPR(BEHANDLER_ER_LEGE_I_HPR) -->|No| root_BEHANDLER_GYLIDG_I_HPR_BEHANDLER_HAR_AUTORISASJON_I_HPR_BEHANDLER_ER_LEGE_I_HPR_BEHANDLER_ER_TANNLEGE_I_HPR(BEHANDLER_ER_TANNLEGE_I_HPR)
root_BEHANDLER_GYLIDG_I_HPR_BEHANDLER_HAR_AUTORISASJON_I_HPR_BEHANDLER_ER_LEGE_I_HPR_BEHANDLER_ER_TANNLEGE_I_HPR(BEHANDLER_ER_TANNLEGE_I_HPR) -->|Yes| root_BEHANDLER_GYLIDG_I_HPR_BEHANDLER_HAR_AUTORISASJON_I_HPR_BEHANDLER_ER_LEGE_I_HPR_BEHANDLER_ER_TANNLEGE_I_HPR_OK(OK):::ok
root_BEHANDLER_GYLIDG_I_HPR_BEHANDLER_HAR_AUTORISASJON_I_HPR_BEHANDLER_ER_LEGE_I_HPR_BEHANDLER_ER_TANNLEGE_I_HPR(BEHANDLER_ER_TANNLEGE_I_HPR) -->|No| root_BEHANDLER_GYLIDG_I_HPR_BEHANDLER_HAR_AUTORISASJON_I_HPR_BEHANDLER_ER_LEGE_I_HPR_BEHANDLER_ER_TANNLEGE_I_HPR_BEHANDLER_ER_MANUELLTERAPEUT_I_HPR(BEHANDLER_ER_MANUELLTERAPEUT_I_HPR)
root_BEHANDLER_GYLIDG_I_HPR_BEHANDLER_HAR_AUTORISASJON_I_HPR_BEHANDLER_ER_LEGE_I_HPR_BEHANDLER_ER_TANNLEGE_I_HPR_BEHANDLER_ER_MANUELLTERAPEUT_I_HPR(BEHANDLER_ER_MANUELLTERAPEUT_I_HPR) -->|Yes| root_BEHANDLER_GYLIDG_I_HPR_BEHANDLER_HAR_AUTORISASJON_I_HPR_BEHANDLER_ER_LEGE_I_HPR_BEHANDLER_ER_TANNLEGE_I_HPR_BEHANDLER_ER_MANUELLTERAPEUT_I_HPR_SYKEFRAVAR_OVER_12_UKER(SYKEFRAVAR_OVER_12_UKER)
root_BEHANDLER_GYLIDG_I_HPR_BEHANDLER_HAR_AUTORISASJON_I_HPR_BEHANDLER_ER_LEGE_I_HPR_BEHANDLER_ER_TANNLEGE_I_HPR_BEHANDLER_ER_MANUELLTERAPEUT_I_HPR_SYKEFRAVAR_OVER_12_UKER(SYKEFRAVAR_OVER_12_UKER) -->|Yes| root_BEHANDLER_GYLIDG_I_HPR_BEHANDLER_HAR_AUTORISASJON_I_HPR_BEHANDLER_ER_LEGE_I_HPR_BEHANDLER_ER_TANNLEGE_I_HPR_BEHANDLER_ER_MANUELLTERAPEUT_I_HPR_SYKEFRAVAR_OVER_12_UKER_INVALID(INVALID):::invalid
root_BEHANDLER_GYLIDG_I_HPR_BEHANDLER_HAR_AUTORISASJON_I_HPR_BEHANDLER_ER_LEGE_I_HPR_BEHANDLER_ER_TANNLEGE_I_HPR_BEHANDLER_ER_MANUELLTERAPEUT_I_HPR_SYKEFRAVAR_OVER_12_UKER(SYKEFRAVAR_OVER_12_UKER) -->|No| root_BEHANDLER_GYLIDG_I_HPR_BEHANDLER_HAR_AUTORISASJON_I_HPR_BEHANDLER_ER_LEGE_I_HPR_BEHANDLER_ER_TANNLEGE_I_HPR_BEHANDLER_ER_MANUELLTERAPEUT_I_HPR_SYKEFRAVAR_OVER_12_UKER_OK(OK):::ok
root_BEHANDLER_GYLIDG_I_HPR_BEHANDLER_HAR_AUTORISASJON_I_HPR_BEHANDLER_ER_LEGE_I_HPR_BEHANDLER_ER_TANNLEGE_I_HPR_BEHANDLER_ER_MANUELLTERAPEUT_I_HPR(BEHANDLER_ER_MANUELLTERAPEUT_I_HPR) -->|No| root_BEHANDLER_GYLIDG_I_HPR_BEHANDLER_HAR_AUTORISASJON_I_HPR_BEHANDLER_ER_LEGE_I_HPR_BEHANDLER_ER_TANNLEGE_I_HPR_BEHANDLER_ER_MANUELLTERAPEUT_I_HPR_BEHANDLER_ER_FT_MED_TILLEGSKOMPETANSE_I_HPR(BEHANDLER_ER_FT_MED_TILLEGSKOMPETANSE_I_HPR)
root_BEHANDLER_GYLIDG_I_HPR_BEHANDLER_HAR_AUTORISASJON_I_HPR_BEHANDLER_ER_LEGE_I_HPR_BEHANDLER_ER_TANNLEGE_I_HPR_BEHANDLER_ER_MANUELLTERAPEUT_I_HPR_BEHANDLER_ER_FT_MED_TILLEGSKOMPETANSE_I_HPR(BEHANDLER_ER_FT_MED_TILLEGSKOMPETANSE_I_HPR) -->|Yes| root_BEHANDLER_GYLIDG_I_HPR_BEHANDLER_HAR_AUTORISASJON_I_HPR_BEHANDLER_ER_LEGE_I_HPR_BEHANDLER_ER_TANNLEGE_I_HPR_BEHANDLER_ER_MANUELLTERAPEUT_I_HPR_BEHANDLER_ER_FT_MED_TILLEGSKOMPETANSE_I_HPR_SYKEFRAVAR_OVER_12_UKER(SYKEFRAVAR_OVER_12_UKER)
root_BEHANDLER_GYLIDG_I_HPR_BEHANDLER_HAR_AUTORISASJON_I_HPR_BEHANDLER_ER_LEGE_I_HPR_BEHANDLER_ER_TANNLEGE_I_HPR_BEHANDLER_ER_MANUELLTERAPEUT_I_HPR_BEHANDLER_ER_FT_MED_TILLEGSKOMPETANSE_I_HPR_SYKEFRAVAR_OVER_12_UKER(SYKEFRAVAR_OVER_12_UKER) -->|Yes| root_BEHANDLER_GYLIDG_I_HPR_BEHANDLER_HAR_AUTORISASJON_I_HPR_BEHANDLER_ER_LEGE_I_HPR_BEHANDLER_ER_TANNLEGE_I_HPR_BEHANDLER_ER_MANUELLTERAPEUT_I_HPR_BEHANDLER_ER_FT_MED_TILLEGSKOMPETANSE_I_HPR_SYKEFRAVAR_OVER_12_UKER_INVALID(INVALID):::invalid
root_BEHANDLER_GYLIDG_I_HPR_BEHANDLER_HAR_AUTORISASJON_I_HPR_BEHANDLER_ER_LEGE_I_HPR_BEHANDLER_ER_TANNLEGE_I_HPR_BEHANDLER_ER_MANUELLTERAPEUT_I_HPR_BEHANDLER_ER_FT_MED_TILLEGSKOMPETANSE_I_HPR_SYKEFRAVAR_OVER_12_UKER(SYKEFRAVAR_OVER_12_UKER) -->|No| root_BEHANDLER_GYLIDG_I_HPR_BEHANDLER_HAR_AUTORISASJON_I_HPR_BEHANDLER_ER_LEGE_I_HPR_BEHANDLER_ER_TANNLEGE_I_HPR_BEHANDLER_ER_MANUELLTERAPEUT_I_HPR_BEHANDLER_ER_FT_MED_TILLEGSKOMPETANSE_I_HPR_SYKEFRAVAR_OVER_12_UKER_OK(OK):::ok
root_BEHANDLER_GYLIDG_I_HPR_BEHANDLER_HAR_AUTORISASJON_I_HPR_BEHANDLER_ER_LEGE_I_HPR_BEHANDLER_ER_TANNLEGE_I_HPR_BEHANDLER_ER_MANUELLTERAPEUT_I_HPR_BEHANDLER_ER_FT_MED_TILLEGSKOMPETANSE_I_HPR(BEHANDLER_ER_FT_MED_TILLEGSKOMPETANSE_I_HPR) -->|No| root_BEHANDLER_GYLIDG_I_HPR_BEHANDLER_HAR_AUTORISASJON_I_HPR_BEHANDLER_ER_LEGE_I_HPR_BEHANDLER_ER_TANNLEGE_I_HPR_BEHANDLER_ER_MANUELLTERAPEUT_I_HPR_BEHANDLER_ER_FT_MED_TILLEGSKOMPETANSE_I_HPR_BEHANDLER_ER_KI_MED_TILLEGSKOMPETANSE_I_HPR(BEHANDLER_ER_KI_MED_TILLEGSKOMPETANSE_I_HPR)
root_BEHANDLER_GYLIDG_I_HPR_BEHANDLER_HAR_AUTORISASJON_I_HPR_BEHANDLER_ER_LEGE_I_HPR_BEHANDLER_ER_TANNLEGE_I_HPR_BEHANDLER_ER_MANUELLTERAPEUT_I_HPR_BEHANDLER_ER_FT_MED_TILLEGSKOMPETANSE_I_HPR_BEHANDLER_ER_KI_MED_TILLEGSKOMPETANSE_I_HPR(BEHANDLER_ER_KI_MED_TILLEGSKOMPETANSE_I_HPR) -->|Yes| root_BEHANDLER_GYLIDG_I_HPR_BEHANDLER_HAR_AUTORISASJON_I_HPR_BEHANDLER_ER_LEGE_I_HPR_BEHANDLER_ER_TANNLEGE_I_HPR_BEHANDLER_ER_MANUELLTERAPEUT_I_HPR_BEHANDLER_ER_FT_MED_TILLEGSKOMPETANSE_I_HPR_BEHANDLER_ER_KI_MED_TILLEGSKOMPETANSE_I_HPR_SYKEFRAVAR_OVER_12_UKER(SYKEFRAVAR_OVER_12_UKER)
root_BEHANDLER_GYLIDG_I_HPR_BEHANDLER_HAR_AUTORISASJON_I_HPR_BEHANDLER_ER_LEGE_I_HPR_BEHANDLER_ER_TANNLEGE_I_HPR_BEHANDLER_ER_MANUELLTERAPEUT_I_HPR_BEHANDLER_ER_FT_MED_TILLEGSKOMPETANSE_I_HPR_BEHANDLER_ER_KI_MED_TILLEGSKOMPETANSE_I_HPR_SYKEFRAVAR_OVER_12_UKER(SYKEFRAVAR_OVER_12_UKER) -->|Yes| root_BEHANDLER_GYLIDG_I_HPR_BEHANDLER_HAR_AUTORISASJON_I_HPR_BEHANDLER_ER_LEGE_I_HPR_BEHANDLER_ER_TANNLEGE_I_HPR_BEHANDLER_ER_MANUELLTERAPEUT_I_HPR_BEHANDLER_ER_FT_MED_TILLEGSKOMPETANSE_I_HPR_BEHANDLER_ER_KI_MED_TILLEGSKOMPETANSE_I_HPR_SYKEFRAVAR_OVER_12_UKER_INVALID(INVALID):::invalid
root_BEHANDLER_GYLIDG_I_HPR_BEHANDLER_HAR_AUTORISASJON_I_HPR_BEHANDLER_ER_LEGE_I_HPR_BEHANDLER_ER_TANNLEGE_I_HPR_BEHANDLER_ER_MANUELLTERAPEUT_I_HPR_BEHANDLER_ER_FT_MED_TILLEGSKOMPETANSE_I_HPR_BEHANDLER_ER_KI_MED_TILLEGSKOMPETANSE_I_HPR_SYKEFRAVAR_OVER_12_UKER(SYKEFRAVAR_OVER_12_UKER) -->|No| root_BEHANDLER_GYLIDG_I_HPR_BEHANDLER_HAR_AUTORISASJON_I_HPR_BEHANDLER_ER_LEGE_I_HPR_BEHANDLER_ER_TANNLEGE_I_HPR_BEHANDLER_ER_MANUELLTERAPEUT_I_HPR_BEHANDLER_ER_FT_MED_TILLEGSKOMPETANSE_I_HPR_BEHANDLER_ER_KI_MED_TILLEGSKOMPETANSE_I_HPR_SYKEFRAVAR_OVER_12_UKER_OK(OK):::ok
root_BEHANDLER_GYLIDG_I_HPR_BEHANDLER_HAR_AUTORISASJON_I_HPR_BEHANDLER_ER_LEGE_I_HPR_BEHANDLER_ER_TANNLEGE_I_HPR_BEHANDLER_ER_MANUELLTERAPEUT_I_HPR_BEHANDLER_ER_FT_MED_TILLEGSKOMPETANSE_I_HPR_BEHANDLER_ER_KI_MED_TILLEGSKOMPETANSE_I_HPR(BEHANDLER_ER_KI_MED_TILLEGSKOMPETANSE_I_HPR) -->|No| root_BEHANDLER_GYLIDG_I_HPR_BEHANDLER_HAR_AUTORISASJON_I_HPR_BEHANDLER_ER_LEGE_I_HPR_BEHANDLER_ER_TANNLEGE_I_HPR_BEHANDLER_ER_MANUELLTERAPEUT_I_HPR_BEHANDLER_ER_FT_MED_TILLEGSKOMPETANSE_I_HPR_BEHANDLER_ER_KI_MED_TILLEGSKOMPETANSE_I_HPR_INVALID(INVALID):::invalid
root_BEHANDLER_GYLIDG_I_HPR_BEHANDLER_HAR_AUTORISASJON_I_HPR(BEHANDLER_HAR_AUTORISASJON_I_HPR) -->|No| root_BEHANDLER_GYLIDG_I_HPR_BEHANDLER_HAR_AUTORISASJON_I_HPR_INVALID(INVALID):::invalid
root(BEHANDLER_GYLIDG_I_HPR) -->|No| root_BEHANDLER_GYLIDG_I_HPR_INVALID(INVALID):::invalid
classDef ok fill:#c3ff91,stroke:#004a00,color: black;
classDef invalid fill:#ff7373,stroke:#ff0000,color: black;
classDef manuell fill:#ffe24f,stroke:#ffd500,color: #473c00;
Expand Down
12 changes: 12 additions & 0 deletions src/main/kotlin/no/nav/syfo/client/NorskHelsenettClient.kt
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ import io.ktor.http.HttpStatusCode.Companion.InternalServerError
import io.ktor.http.HttpStatusCode.Companion.NotFound
import io.ktor.http.HttpStatusCode.Companion.OK
import java.io.IOException
import java.time.LocalDateTime
import net.logstash.logback.argument.StructuredArguments.fields
import no.nav.syfo.azuread.v2.AzureAdV2Client
import no.nav.syfo.helpers.retry
Expand Down Expand Up @@ -90,8 +91,19 @@ data class Behandler(
data class Godkjenning(
val helsepersonellkategori: Kode? = null,
val autorisasjon: Kode? = null,
val tillegskompetanse: List<Tilleggskompetanse>? = null,
)

data class Tilleggskompetanse(
val avsluttetStatus: Kode?,
val eTag: String?,
val gyldig: Periode?,
val id: Int?,
val type: Kode?
)

data class Periode(val fra: LocalDateTime?, val til: LocalDateTime?)

data class Kode(
val aktiv: Boolean,
val oid: Int,
Expand Down
11 changes: 11 additions & 0 deletions src/main/kotlin/no/nav/syfo/rules/hpr/HPRRuleHit.kt
Original file line number Diff line number Diff line change
Expand Up @@ -50,4 +50,15 @@ enum class HPRRuleHit(
"gjør at sykefraværet ditt overstiger 12 uker",
),
),
BEHANDLER_ER_FT_UTEN_TILLIGESKOMPETANSE_SYKMELDING(
ruleHit =
RuleHit(
rule = "BEHANDLER_ER_FT_UTEN_TILLIGESKOMPETANSE_SYKMELDINGHPRRuleHit",
status = Status.INVALID,
messageForSender =
"Behandler finnes i HPR, men er fysioterapeut uten tilleggskompetanse for sykmelding" +
"Pasienten har fått beskjed.",
messageForUser = "Den som skrev sykmeldingen manglet autorisasjon",
),
),
}
46 changes: 0 additions & 46 deletions src/main/kotlin/no/nav/syfo/rules/hpr/HPRRuleTree.kt

This file was deleted.

78 changes: 78 additions & 0 deletions src/main/kotlin/no/nav/syfo/rules/hpr/HprRuleTree.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,78 @@
package no.nav.syfo.rules.hpr

import HPRRule
import behanderGyldigHPR
import behandlerErFTMedTilligskompetanseSykmelding
import behandlerErKIMedTilligskompetanseSykmelding
import behandlerErLege
import behandlerErManuellterapeut
import behandlerErTannlege
import behandlerHarAutorisasjon
import no.nav.syfo.model.Status
import no.nav.syfo.rules.common.RuleResult
import no.nav.syfo.rules.dsl.RuleNode
import no.nav.syfo.rules.dsl.tree
import sykefravarOver12Uker

enum class HPRRules {
BEHANDLER_GYLIDG_I_HPR,
BEHANDLER_HAR_AUTORISASJON_I_HPR,
BEHANDLER_ER_LEGE_I_HPR,
BEHANDLER_ER_TANNLEGE_I_HPR,
BEHANDLER_ER_MANUELLTERAPEUT_I_HPR,
BEHANDLER_ER_FT_MED_TILLEGSKOMPETANSE_I_HPR,
BEHANDLER_ER_KI_MED_TILLEGSKOMPETANSE_I_HPR,
SYKEFRAVAR_OVER_12_UKER,
}

val hprRuleTree =
tree<HPRRules, RuleResult>(HPRRules.BEHANDLER_GYLIDG_I_HPR) {
no(Status.INVALID, HPRRuleHit.BEHANDLER_IKKE_GYLDIG_I_HPR)
yes(HPRRules.BEHANDLER_HAR_AUTORISASJON_I_HPR) {
no(Status.INVALID, HPRRuleHit.BEHANDLER_MANGLER_AUTORISASJON_I_HPR)
yes(HPRRules.BEHANDLER_ER_LEGE_I_HPR) {
yes(Status.OK)
no(HPRRules.BEHANDLER_ER_TANNLEGE_I_HPR) {
yes(Status.OK)
no(HPRRules.BEHANDLER_ER_MANUELLTERAPEUT_I_HPR) {
yes(HPRRules.SYKEFRAVAR_OVER_12_UKER, checkSykefravarOver12Uker())
no(HPRRules.BEHANDLER_ER_FT_MED_TILLEGSKOMPETANSE_I_HPR) {
yes(HPRRules.SYKEFRAVAR_OVER_12_UKER, checkSykefravarOver12Uker())
no(HPRRules.BEHANDLER_ER_KI_MED_TILLEGSKOMPETANSE_I_HPR) {
yes(HPRRules.SYKEFRAVAR_OVER_12_UKER, checkSykefravarOver12Uker())
no(Status.INVALID, HPRRuleHit.BEHANDLER_IKKE_LE_KI_MT_TL_FT_I_HPR)
}
}
}
}
}
}
}

private fun checkSykefravarOver12Uker(): RuleNode<HPRRules, RuleResult>.() -> Unit = {
yes(Status.INVALID, HPRRuleHit.BEHANDLER_MT_FT_KI_OVER_12_UKER)
no(Status.OK)
}

internal fun RuleNode<HPRRules, RuleResult>.yes(status: Status, ruleHit: HPRRuleHit? = null) {
yes(RuleResult(status, ruleHit?.ruleHit))
}

internal fun RuleNode<HPRRules, RuleResult>.no(status: Status, ruleHit: HPRRuleHit? = null) {
no(RuleResult(status, ruleHit?.ruleHit))
}

fun getRule(rules: HPRRules): HPRRule {
return when (rules) {
HPRRules.BEHANDLER_GYLIDG_I_HPR -> behanderGyldigHPR(rules)
HPRRules.BEHANDLER_HAR_AUTORISASJON_I_HPR -> behandlerHarAutorisasjon(rules)
HPRRules.BEHANDLER_ER_LEGE_I_HPR -> behandlerErLege(rules)
HPRRules.BEHANDLER_ER_TANNLEGE_I_HPR -> behandlerErTannlege(rules)
HPRRules.BEHANDLER_ER_MANUELLTERAPEUT_I_HPR -> behandlerErManuellterapeut(rules)
HPRRules.BEHANDLER_ER_FT_MED_TILLEGSKOMPETANSE_I_HPR ->
behandlerErFTMedTilligskompetanseSykmelding(rules)
HPRRules.BEHANDLER_ER_KI_MED_TILLEGSKOMPETANSE_I_HPR ->
behandlerErKIMedTilligskompetanseSykmelding(rules)
HPRRules.SYKEFRAVAR_OVER_12_UKER -> sykefravarOver12Uker(rules)
}
}
Loading

0 comments on commit 987e4ab

Please sign in to comment.