Program indicator engine¶
The SDK includes its own Program Indicator engine for the evaluation of in-line Program Indicators. These kind of indicators are evaluated within the context of an enrollment or an event (single or tracker) and they are usually placed in the data entry form offering additional information to the data encoder. This means that, even though they are regular Program Indicators and can be calculated across enrollments, they have provide useful information within a single enrollment.
Um bom exemplo, "Tempo médio entre visitas".
Um mau exemplo, "Número de TEIs activos": seria sempre 1.
Para acionar o mecanismo indicador do programa, basta executar:
d2.programModule()
.programIndicatorEngine()
.getEnrollmentProgramIndicatorValue(<enrollment-uid>, <program-indicator-uid>);
d2.programModule()
.programIndicatorEngine()
.getEventProgramIndicatorValue(<event-uid>, <program-indicator-uid>);
If the evaluation of the "filter" component returns false, the result is null.
| Modelo | Elemento | Web | Android SDK |
|---|---|---|---|
| Mathematical: | Parenthesis | sim | sim |
| Plus (+) | sim | sim | |
| Minus (-) | sim | sim | |
| Power (^) | sim | sim | |
| Multiply (*) | sim | sim | |
| Divide (/) | sim | sim | |
| Modulus (%) | sim | sim | |
| Logical: | NOT | sim | sim |
| ! | sim | sim | |
| AND | sim | sim | |
| && | sim | sim | |
| OR | sim | sim | |
| || | sim | sim | |
| Comparison: | Equal (==) | sim | sim |
| NotEqual (!=) | sim | sim | |
| GT (>) | sim | sim | |
| LT (<) | sim | sim | |
| GE (>=) | sim | sim | |
| LE (<=) | sim | sim | |
| Functions: | FirstNonNull | sim | sim |
| Greatest | sim | sim | |
| If | sim | sim | |
| IsNotNull | sim | sim | |
| IsNull | sim | sim | |
| Least | sim | sim | |
| Log | sim | sim | |
| Log10 | sim | sim | |
| PeriodOffset | - | Não | |
| FunçõesD2: | D2AddDays | sim | sim |
| D2Ceil | sim | sim | |
| D2Concatenate | sim | sim | |
| D2Condition | sim | sim | |
| D2Count | sim | sim | |
| D2CountIfCondition | sim | sim | |
| D2CountIfValue | sim | sim | |
| D2DaysBetween | sim | sim | |
| D2Floor | sim | sim | |
| D2HasValue | sim | sim | |
| D2Left | sim | sim | |
| D2Length | sim | sim | |
| D2MaxValue | Não | sim | |
| D2MinutesBetween | sim | sim | |
| D2MinValue | Não | sim | |
| D2Modulus | sim | sim | |
| D2MonthsBetween | sim | sim | |
| D2Oizp | sim | sim | |
| D2RelationshipCount | sim | sim | |
| D2Right | sim | sim | |
| D2Round | sim | sim | |
| D2Split | sim | sim | |
| D2Substring | sim | sim | |
| D2ValidatePattern | sim | sim | |
| D2WeeksBetween | sim | sim | |
| D2anosentre | sim | sim | |
| D2Zing | sim | sim | |
| D2Zpvc | sim | sim | |
| D2LastEventDate | sim | Não | |
| D2AddControlDigits | sim | Não | |
| D2CheckControlDigits | sim | Não | |
| D2ZScoreWFA | sim | Não | |
| D2ZScoreWFH | sim | Não | |
| D2ZScoreHFA | sim | Não | |
| D2InOrgUnitGroup | sim | Não | |
| D2HasUserRole | sim | Não | |
| Variáveis: | AnalyticsPeriodEnd | Não | Não |
| AnalyticsPeriodStart | Não | Não | |
| CreationDate | Não | sim | |
| CurrentDate | sim | sim | |
| CompletedDate | Não | sim | |
| Data de vencimento | sim | sim | |
| EnrollmentCount | sim | sim | |
| Data de inscrição | sim | sim | |
| EnrollmentStatus | Não | sim | |
| EventStatus | sim | sim | |
| EventCount | sim | sim | |
| Data de execução | sim | sim | |
| Data do evento | sim | sim | |
| IncidentDate | sim | sim | |
| OrgunitCount | Não | Não | |
| ProgramStageId | sim | sim | |
| ProgramStageName | sim | sim | |
| SyncDate | Não | Não | |
| TeiCount | sim | sim | |
| ValueCount | sim | sim | |
| ZeroPosValueCount | sim | sim | |
| De outros: | Constante | sim | sim |
| ProgramStageElement | sim | sim | |
| ProgramAttribute | sim | sim | |
| PS_EVENTDATE | sim | sim |