use of org.hisp.dhis.programrule.ProgramRuleVariable in project dhis2-core by dhis2.
the class ProgramRuleVariableObjectBundleHook method getProgramRuleVariableQuery.
private Query<ProgramRuleVariable> getProgramRuleVariableQuery(ProgramRuleVariable programRuleVariable) {
Session session = sessionFactory.getCurrentSession();
Query<ProgramRuleVariable> query = session.createQuery(FROM_PROGRAM_RULE_VARIABLE, ProgramRuleVariable.class);
query.setParameter("name", programRuleVariable.getName());
query.setParameter("programUid", programRuleVariable.getProgram().getUid());
return query;
}
use of org.hisp.dhis.programrule.ProgramRuleVariable in project dhis2-core by dhis2.
the class ProgramRuleVariableIntegrationTest method shouldAssignValueTypeFromTrackedEntityAttributeToProgramRuleVariable.
@Test
public void shouldAssignValueTypeFromTrackedEntityAttributeToProgramRuleVariable() {
Program program = programService.getProgram("BFcipDERJne");
TrackedEntityAttribute trackedEntityAttribute = trackedEntityAttributeService.getTrackedEntityAttribute("sYn3tkL3XKa");
List<ProgramRuleVariable> ruleVariables = programRuleVariableService.getProgramRuleVariable(program);
ProgramRuleVariable prv = ruleVariables.stream().filter(r -> ProgramRuleVariableSourceType.TEI_ATTRIBUTE == r.getSourceType()).findFirst().get();
assertEquals(trackedEntityAttribute.getValueType(), prv.getValueType());
}
use of org.hisp.dhis.programrule.ProgramRuleVariable in project dhis2-core by dhis2.
the class ProgramRuleVariableIntegrationTest method shouldAssignDefaultValueTypeToProgramRuleVariable.
@Test
public void shouldAssignDefaultValueTypeToProgramRuleVariable() {
Program program = programService.getProgram("BFcipDERJne");
List<ProgramRuleVariable> ruleVariables = programRuleVariableService.getProgramRuleVariable(program);
ProgramRuleVariable prv = ruleVariables.stream().filter(r -> ProgramRuleVariableSourceType.CALCULATED_VALUE == r.getSourceType()).findFirst().get();
assertEquals(ValueType.TEXT, prv.getValueType());
}
use of org.hisp.dhis.programrule.ProgramRuleVariable in project dhis2-core by dhis2.
the class ProgramRuleIntegrationTest method setUpTest.
@Override
public void setUpTest() throws Exception {
renderService = _renderService;
userService = _userService;
Map<Class<? extends IdentifiableObject>, List<IdentifiableObject>> metadata = renderService.fromMetadata(new ClassPathResource("tracker/simple_metadata.json").getInputStream(), RenderFormat.JSON);
ObjectBundleParams params = new ObjectBundleParams();
params.setObjectBundleMode(ObjectBundleMode.COMMIT);
params.setImportStrategy(ImportStrategy.CREATE);
params.setObjects(metadata);
ObjectBundle bundle = objectBundleService.create(params);
ObjectBundleValidationReport validationReport = objectBundleValidationService.validate(bundle);
assertFalse(validationReport.hasErrorReports());
objectBundleService.commit(bundle);
Program program = bundle.getPreheat().get(PreheatIdentifier.UID, Program.class, "BFcipDERJnf");
Program programWithoutRegistration = bundle.getPreheat().get(PreheatIdentifier.UID, Program.class, "BFcipDERJne");
DataElement dataElement1 = bundle.getPreheat().get(PreheatIdentifier.UID, DataElement.class, "DATAEL00001");
DataElement dataElement2 = bundle.getPreheat().get(PreheatIdentifier.UID, DataElement.class, "DATAEL00002");
ProgramStage programStage = bundle.getPreheat().get(PreheatIdentifier.UID, ProgramStage.class, "NpsdDv6kKSO");
ProgramRuleVariable programRuleVariable = createProgramRuleVariableWithDataElement('A', program, dataElement2);
programRuleVariableService.addProgramRuleVariable(programRuleVariable);
ProgramRule programRuleA = createProgramRule('A', program);
programRuleA.setUid("ProgramRule");
programRuleService.addProgramRule(programRuleA);
ProgramRule programRuleWithoutRegistration = createProgramRule('W', programWithoutRegistration);
programRuleService.addProgramRule(programRuleWithoutRegistration);
ProgramRule programRuleB = createProgramRule('B', program);
programRuleB.setProgramStage(programStage);
programRuleService.addProgramRule(programRuleB);
ProgramRuleAction programRuleActionShowWarning = createProgramRuleAction('A', programRuleA);
programRuleActionShowWarning.setProgramRuleActionType(ProgramRuleActionType.SHOWWARNING);
programRuleActionShowWarning.setContent("WARNING");
programRuleActionService.addProgramRuleAction(programRuleActionShowWarning);
ProgramRuleAction programRuleActionAssign = createProgramRuleAction('C', programRuleA);
programRuleActionAssign.setProgramRuleActionType(ProgramRuleActionType.ASSIGN);
programRuleActionAssign.setData("#{ProgramRuleVariableA}");
programRuleActionAssign.setDataElement(dataElement1);
programRuleActionService.addProgramRuleAction(programRuleActionAssign);
ProgramRuleAction programRuleActionShowWarningForProgramStage = createProgramRuleAction('B', programRuleB);
programRuleActionShowWarningForProgramStage.setProgramRuleActionType(ProgramRuleActionType.SHOWWARNING);
programRuleActionShowWarningForProgramStage.setContent("PROGRAM STAGE WARNING");
programRuleActionService.addProgramRuleAction(programRuleActionShowWarningForProgramStage);
programRuleA.getProgramRuleActions().add(programRuleActionShowWarning);
programRuleA.getProgramRuleActions().add(programRuleActionAssign);
programRuleWithoutRegistration.getProgramRuleActions().add(programRuleActionShowWarning);
programRuleService.updateProgramRule(programRuleWithoutRegistration);
programRuleB.getProgramRuleActions().add(programRuleActionShowWarningForProgramStage);
programRuleService.updateProgramRule(programRuleB);
userA = userService.getUser("M5zQapPyTZI");
injectSecurityContext(userA);
}
use of org.hisp.dhis.programrule.ProgramRuleVariable in project dhis2-core by dhis2.
the class DhisConvenienceTest method createProgramRuleVariableWithDataElement.
public static ProgramRuleVariable createProgramRuleVariableWithDataElement(char uniqueCharacter, Program parentProgram, DataElement dataElement) {
ProgramRuleVariable programRuleVariable = new ProgramRuleVariable();
programRuleVariable.setAutoFields();
programRuleVariable.setName(PROGRAM_RULE_VARIABLE + uniqueCharacter);
programRuleVariable.setProgram(parentProgram);
programRuleVariable.setDataElement(dataElement);
programRuleVariable.setSourceType(ProgramRuleVariableSourceType.DATAELEMENT_CURRENT_EVENT);
programRuleVariable.setValueType(dataElement.getValueType());
return programRuleVariable;
}
Aggregations