Function list
The versatile expression engine built into AlisQI enables users to create not only numeric calculations but also advanced business logic expressions. Combined with the workflows, this enables you to create business logic within AlisQI.
The expression engine is based on Twig, an open-source templating engine, and supports a rich syntax with many features, including functions, filters, tests, and operators.
On top of Twig's standard features, we added a number of extra functions to make your life just a bit easier. These functions can be found in the Function drop-down in AlisQI.
In this article
In this article
Numeric functions
ABS( value )
absolute valueAVERAGE( value, value, ..., value)
average of the non-empty valuesMOVINGAVG( field, number )
moving averageDELTA( field )
difference compared to previous resultLOG( value, [base] )
log (base 10 by default)POWER( base, power )
base raised to the powerMIN( value, value, ..., value )
minimum of non-empty valuesMAX( value, value, ..., value)
maximum of non-empty valuesSTDEV( value, value, ..., value )
standard deviation of non-empty valuesRANGE( value, value, ..., value )
range (max-min) for given fields or valuesCEIL( value )
round fractions up (1.2 will be rounded to 2)FLOOR( value )
round fractions down (1.9 will be rounded to 1)COUNTRESULTS( {field1}.name, {field2}.name, {field3}.name )
count the number results with the same signature. The signature is defined by the three field parameters. Field 1 is mandatory, Fields 2 and 3 are optional.
Example:COUNTRESULTS({batchcode})
will return a counter with the number of samples for this particular batchcode. This allows for first time right reporting.COUNTRESULTS_BEFORE({datefield}.name, {field1}.name, {field2}.name, {field3}.name)
same asCOUNTRESULTS
but with a date and time reference, so that only results before the result's date will be counted.
field
= field name of a numeric field (numeric or calculation)value
= field name of a numeric field or an expression
Linear Regression
SLOPE( [x1,y1], [x2,y2], [x3,y3], ..., [x20,y20] )
Calculate thea
iny = ax+b
INTERCEPT( [x1,y1], [x2,y2], [x3,y3], ..., [x20,y20] )
Calculate theb
iny = ax+b
CORRELATION( [x1,y1], [x2,y2], [x3,y3], ..., [x20,y20] )
Calculate the correlation between all data points.
These linear regression functions all support up to 20 data points, defined as [x,y]
.
A minimum set of 3 x,y
pairs is required for each of the linear regression functions.
Other numeric functions
The Twig engine that forms the core of our expression engine provides the following numeric functions:
Date functions
Date(time) difference
Subtracting two dates is possible using these two functions:
DATE_DIFF_MIN( dateField, dateField)
difference in minutes between date1 and date2DATE_DIFF_DAY( dateField, dateField)
difference in days between date1 and date2NOW()
return the current date + time, in the tenant's timezone.
Compute a date(time)
To compute a date based on a reference date and offset, you can use:
DATE_ADD_DAY( dateField, offset)
offset can be a static integer value or reference to a field (incl. calculations)DATE_ADD_MONTH( dateField, offset)
offset can be a static integer value or reference to a field (incl. calculations)
This will result in a new date (or datetime, depending on your field settings).
Other date functions
The Twig engine that forms the core of our expression engine provides the following date functions:
Example syntax to add 3 hours to the date field's value and convert it to yyyy-mm-dd hh:mm:ss:
{date}|date_modify("+3 hours")|date("Y-m-d H:i:s")
Text functions
Text calculation fields can use the following function:CONCAT ( value, value, value, ...)
This function glues all values together. Values can either be field names or static text strings.CONCAT({code}, ' - ', {name})
with code = 123 and name = ABC will result in "123 - ABC"
A short hand notation for concatenating values is the ~
operator.{field1}~{field2}
will glue the values for fields 1 and 2 together.
Regular expressions
Regular expressions provide a powerful and flexible way to search for and manipulate text patterns. Our regex filters allows for advanced pattern matching and extraction, making it a valuable tool for text processing tasks. The syntax is based on the Perl Compatible Regular Expressions (PCRE) syntax.
- preg_quote
- preg_match
- preg_get
- preg_get_all
- preg_grep
- preg_replace
- preg_filter
- preg_split
Useful links
Nesting in expressions
Value parameters can either be field names or expressions. This allows for function nesting, where the output of a function is used as input for another function.
The DELTA
and MOVINGAVG
functions only accept a field name as parameter and no expressions. This is due to the fact that these functions evaluate multiple results (rows in the results overview).
Read all about the advanced possibilities of calculations in AlisQI
Filters
Variables can be modified by filters. Filters are separated from the variable by a pipe symbol ( |
). Multiple filters can be chained. The output of one filter is applied to the next.
The 'upper' filter would convert 'diana' into 'DIANA'
{name_}|upper