@Override
public RuleEnrollment toMappedRuleEnrollment( ProgramInstance enrollment )
{
if( enrollment == null )
{
return null;
}
return RuleEnrollment.create( enrollment.getUid(), enrollment.getIncidentDate(),
enrollment.getEnrollmentDate(), RuleEnrollment.Status.valueOf( enrollment.getStatus().toString() ), enrollment.getOrganisationUnit() != null ? enrollment.getOrganisationUnit().getUid() : "",
enrollment.getEntityInstance().getTrackedEntityAttributeValues().stream().filter( Objects::nonNull )
.map( attr -> RuleAttributeValue.create( attr.getAttribute().getUid(), getTrackedEntityAttributeValue( attr ) ) )
.collect( Collectors.toList() ), enrollment.getProgram().getName() );
}