You can create Arezzo terms by combining the question codes in your study with the predefined functions and operators of Arezzo. Examples of Arezzo terms
The Expression Builder helps you to create correct Arezzo terms.
For a list of all Arezzo expressions in a study, run the Arezzo Terms Report in the SDDU module. Please note this is different from the report of the same name in the SD module which checks for the accuracy of expressions.
An Arezzo expression is a formula that describes how to calculate a value. For example
pulse * 2
represents the value of the pulse question multiplied by 2.
Expressions are used for:
Question derivations
Question validation messages
eForm labels
Subject label, gender and date of birth
Lab test dates
An Arezzo condition is an expression which contains at least one comparison operator (such as greater than or equal to) and therefore always evaluates to true or false. For example
pulse > 80
is true if the value of the pulse question is greater than 80.
You can combine conditions using the logical operators and and or, and negate conditions using the not operator.
Conditions are used for:
Question validation conditions
'Collect if' conditions
Registration eligibility conditions
If you are creating an Arezzo term on an eForm (for example a question’s derivation or validation condition) and you want to refer to a question on the same eForm, you must use the question code only and not include the eForm and visit. Including the eForm and/or visit in this situation can cause errors.
For example, the validation condition
Age > 18
refers to the question Age, which must be on the same eForm as where the condition is being evaluated. This condition is true if the value of Age is greater than 18.
If you want to refer to a question on a different eForm, you must specify the visit code and eForm code as well as the question code, separated by colons. For example
Screening:Cover:Age > 18
refers to the question Age on the Cover eForm in the Screening visit. You can use this expression anywhere in your study.
You can also specify visit and eForm cycles, and repeat numbers of questions. In fact, if you are using an expression that references a cycling visit, eForm or question, you must include a cycle specifier.
Within validation conditions, you should always use the special term me:value to refer to the value of the question being validated. Do not use the code of the question itself Why not?
For example, the validation condition
me:value =< BPSystolic
is true if the value of the question being validated is less than or equal to the value of the BPSystolic question on the same eForm.
You must always use the category code when referring to values of category questions. For example, if a question Sex has category codes of 1 and 2 referring to category values of Female and Male, the condition
Sex = 2
is true if the value of the Sex question is Male.
Note: When deriving the value of a category question, the derivation expression must specify the text value rather than the code value. Click here for more information.
See the section on Arezzo Syntax for help on the correct usage of strings, quotes, brackets and spaces.
If you refer to unknown data in an Arezzo condition, the condition will always be treated as false. For example, the condition
me:value > Screening:Vital:Pulse
will only be true if there is a value for the Pulse question on the Vital eForm in the Screening visit, and this value is less than the current question. If there is no value for the Pulse question, the condition will evaluate to false.
To avoid unexpected results arising from unknown data, it is often safer to use the general function isknown, which tests for the existence of a question value.
Here’s how you specify a set in Arezzo:
You can represent an explicit set using square brackets and listing the members of the set, separated by commas:
[ 'nausea', 'headache', 'fatigue' ]
is a set of three text values,
[ 12, 34, 78, 99 ]
is a set of four numbers, and
[ YN_1, YN_2, YN_3 ]
is a set of three question values. Note that if you use a 'question value' set in an expression, the expression will only be evaluated if all the question values are known.
If a question is within a repeating question group, the question code represents the set of all the responses within the group. For example, if MedName is a question in a repeating group, the expression
count( MedName )
returns the number of values for MedName that have been filled in.
If you want to use this expression in a different eForm, you must specify the visit and eForm too, for example:
count( Treatment:ConMeds:MedName )
If either the visit or the eForm is repeating, this represents the set of all responses to MedName in all the cycles of the ConMeds eForm in all the cycles of the Treatment visit.
You can restrict the visit or the eForm by specifying particular cycles, e.g.
count( Treatment(first):ConMeds(last):MedName )
Click here for an example of using the arithmetic set functions in a repeating question group.
For questions on repeating eForms, the eForm and question specification represents the set of all the responses on all the eForms. For example, if AEDate is a question on a repeating AEvent eForm, then the expression
min( Treatment:AEvent:AEDate )
returns the earliest AEDate value on all the AEvent eForms in the Treatment visit.
For questions on eForms in repeating visits, the visit, eForm and question specification represents the set of all the responses on all the eForms in all the visits. For example, if Dose is a numeric question on a (possibly) repeating Drug eForm in a repeating Treatment visit, then the expression
average( Treatment:Drug:Dose )
returns the average drug dose over all the Drug eForms in al the Treatment visits.
You can use the underscore character _ to specify 'any eForm' or 'any visit'. For example, the expression
count( _:_:AEDescription )
returns the total number of AEDescription responses on all eForms in all visits in the study. The expression
count( _:AEvent:AEDescription )
returns the total number of AEDescription responses on all Aevent eForms in all visits in the study.