-
Notifications
You must be signed in to change notification settings - Fork 16
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
refactor: Clean up description call to rule engine (#117)
* refactor: Clean up description call to rule engine * refactor: Clean up evaluation call to rule engine * refactor: Clean up evaluation call to rule engine * refactor: EventDate changed from LocalDate to Instant * Refactor package structure * Refactor package structure * Fix RuleAction interface * Fix RuleAction interface * Fix RuleEngine API interface * Make engine package internal * Make rule engine getInstance static for Java * Update build.gradle.kts
- Loading branch information
1 parent
dbc11b0
commit 23dd168
Showing
72 changed files
with
1,297 additions
and
2,255 deletions.
There are no files selected for viewing
120 changes: 0 additions & 120 deletions
120
src/commonMain/kotlin/org/hisp/dhis/rules/RuleEngine.kt
This file was deleted.
Oops, something went wrong.
13 changes: 0 additions & 13 deletions
13
src/commonMain/kotlin/org/hisp/dhis/rules/RuleEngineContext.kt
This file was deleted.
Oops, something went wrong.
28 changes: 0 additions & 28 deletions
28
src/commonMain/kotlin/org/hisp/dhis/rules/RuleEngineExecution.kt
This file was deleted.
Oops, something went wrong.
70 changes: 0 additions & 70 deletions
70
src/commonMain/kotlin/org/hisp/dhis/rules/RuleEngineFilter.kt
This file was deleted.
Oops, something went wrong.
36 changes: 0 additions & 36 deletions
36
src/commonMain/kotlin/org/hisp/dhis/rules/RuleEngineIntent.kt
This file was deleted.
Oops, something went wrong.
42 changes: 0 additions & 42 deletions
42
src/commonMain/kotlin/org/hisp/dhis/rules/RuleEngineMultipleExecution.kt
This file was deleted.
Oops, something went wrong.
6 changes: 0 additions & 6 deletions
6
src/commonMain/kotlin/org/hisp/dhis/rules/RuleExpressionEvaluator.kt
This file was deleted.
Oops, something went wrong.
2 changes: 1 addition & 1 deletion
2
...in/kotlin/org/hisp/dhis/rules/DataItem.kt → ...otlin/org/hisp/dhis/rules/api/DataItem.kt
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
27 changes: 27 additions & 0 deletions
27
src/commonMain/kotlin/org/hisp/dhis/rules/api/EnvironmentVariables.kt
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,27 @@ | ||
package org.hisp.dhis.rules.api | ||
|
||
import org.hisp.dhis.rules.utils.RuleEngineUtils | ||
|
||
object EnvironmentVariables { | ||
val ENV_VARIABLES = mapOf( | ||
Pair(RuleEngineUtils.ENV_VAR_COMPLETED_DATE, ItemValueType.DATE), | ||
Pair(RuleEngineUtils.ENV_VAR_CURRENT_DATE, ItemValueType.DATE), | ||
Pair(RuleEngineUtils.ENV_VAR_EVENT_DATE, ItemValueType.DATE), | ||
Pair(RuleEngineUtils.ENV_VAR_INCIDENT_DATE, ItemValueType.DATE), | ||
Pair(RuleEngineUtils.ENV_VAR_ENROLLMENT_DATE, ItemValueType.DATE), | ||
Pair(RuleEngineUtils.ENV_VAR_DUE_DATE, ItemValueType.DATE), | ||
Pair(RuleEngineUtils.ENV_VAR_EVENT_COUNT, ItemValueType.NUMBER), | ||
Pair(RuleEngineUtils.ENV_VAR_TEI_COUNT, ItemValueType.NUMBER), | ||
Pair(RuleEngineUtils.ENV_VAR_ENROLLMENT_COUNT, ItemValueType.NUMBER), | ||
Pair(RuleEngineUtils.ENV_VAR_EVENT_ID, ItemValueType.NUMBER), | ||
Pair(RuleEngineUtils.ENV_VAR_PROGRAM_STAGE_ID, ItemValueType.NUMBER), | ||
Pair(RuleEngineUtils.ENV_VAR_ENROLLMENT_ID, ItemValueType.NUMBER), | ||
Pair(RuleEngineUtils.ENV_VAR_ENROLLMENT_STATUS, ItemValueType.TEXT), | ||
Pair(RuleEngineUtils.ENV_VAR_EVENT_STATUS, ItemValueType.TEXT), | ||
Pair(RuleEngineUtils.ENV_VAR_OU, ItemValueType.TEXT), | ||
Pair(RuleEngineUtils.ENV_VAR_OU_CODE, ItemValueType.TEXT), | ||
Pair(RuleEngineUtils.ENV_VAR_ENVIRONMENT, ItemValueType.TEXT), | ||
Pair(RuleEngineUtils.ENV_VAR_PROGRAM_NAME, ItemValueType.TEXT), | ||
Pair(RuleEngineUtils.ENV_VAR_PROGRAM_STAGE_NAME, ItemValueType.TEXT) | ||
) | ||
} |
2 changes: 1 addition & 1 deletion
2
...tlin/org/hisp/dhis/rules/ItemValueType.kt → .../org/hisp/dhis/rules/api/ItemValueType.kt
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,4 +1,4 @@ | ||
package org.hisp.dhis.rules | ||
package org.hisp.dhis.rules.api | ||
|
||
import org.hisp.dhis.lib.expression.spi.ValueType | ||
|
||
|
20 changes: 20 additions & 0 deletions
20
src/commonMain/kotlin/org/hisp/dhis/rules/api/RuleEngine.kt
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
package org.hisp.dhis.rules.api | ||
|
||
import org.hisp.dhis.rules.engine.DefaultRuleEngine | ||
import org.hisp.dhis.rules.models.* | ||
import kotlin.jvm.JvmStatic | ||
|
||
interface RuleEngine { | ||
fun validate(expression: String, dataItemStore: Map<String, DataItem>): RuleValidationResult | ||
fun validateDataFieldExpression(expression: String, dataItemStore: Map<String, DataItem>): RuleValidationResult | ||
fun evaluateAll(enrollmentTarget: RuleEnrollment?, eventsTarget: List<RuleEvent>, executionContext: RuleEngineContext): List<RuleEffects> | ||
fun evaluate(target: RuleEnrollment, ruleEvents: List<RuleEvent>, executionContext: RuleEngineContext): List<RuleEffect> | ||
fun evaluate(target: RuleEvent, ruleEnrollment: RuleEnrollment?, ruleEvents: List<RuleEvent>, executionContext: RuleEngineContext): List<RuleEffect> | ||
|
||
companion object { | ||
@JvmStatic | ||
fun getInstance(): RuleEngine { | ||
return DefaultRuleEngine() | ||
} | ||
} | ||
} |
13 changes: 13 additions & 0 deletions
13
src/commonMain/kotlin/org/hisp/dhis/rules/api/RuleEngineContext.kt
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,13 @@ | ||
package org.hisp.dhis.rules.api | ||
|
||
import org.hisp.dhis.rules.models.Rule | ||
import org.hisp.dhis.rules.models.RuleEnrollment | ||
import org.hisp.dhis.rules.models.RuleEvent | ||
import org.hisp.dhis.rules.models.RuleVariable | ||
|
||
data class RuleEngineContext( | ||
val rules: List<Rule>, | ||
val ruleVariables: List<RuleVariable> = emptyList(), | ||
val supplementaryData: Map<String, List<String>> = emptyMap(), | ||
val constantsValues: Map<String, String> = emptyMap() | ||
) |
Oops, something went wrong.