Study Definition module

 

Arezzo basics

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.

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:

Conditions

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:

Referring to question values

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.

The current question in validations

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.

Referring to category values

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.

Unknown data

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.

Specifying Sets

Here’s how you specify a set in Arezzo:

An explicit set

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.

Sets of repeating questions

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.

Sets of questions on repeating eForms

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.

Sets of questions in repeating visits

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.

Wild cards

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.

 

 

Related Topics