0.0.4 • Published 4 years ago

@hisp-amr/assign-value-rule-engine v0.0.4

Weekly downloads
4
License
BSD-3-Clause
Repository
github
Last release
4 years ago

assign-value-rule-engine

Installation

yarn add @hisp-amr/assign-value-rule-engine
# or
npm i @hisp-amr/assign-value-rule-engine

Usage

You need to pass along some metadata. In the example app the bellow query was used with @dhis2/app-runtime. See AppContent.js

const query = {
    metadata: {
        resource: 'metadata',
        params: {
            optionGroups: 'true', // not strictly needed, but was used to find the correct program based on organism
            programs: 'true',
            programRules: 'true',
            programRuleVariables: 'true',
            fields: [
                'id',
                'options[code,displayName]',
                'dataElement',
                'name',
                'condition',
                'programRuleActions[programRuleActionType,dataElement,data]',
                'programStages[id,programStageDataElements]',
                'program',
            ],
        },
    },
}

See RuleRunner.js

import { runAssignValueRules } from '@hisp-amr/assign-value-rule-engine'

const newDataValues = runAssignValueRules(
    event.dataValues,
    programStage.programStageDataElements, // programStage of the event
    {
        programRules: metadata.programRules.filter(
            ({ program }) => program.id === programId
        ),
        programRuleVariables: metadata.programRuleVariables,
    }
)
0.0.4

4 years ago

0.0.3

4 years ago

0.0.2

4 years ago

0.0.1

4 years ago