Summary
This article covers the contents and the usage of the Question Types - Definition worksheet.
Table of Contents
- questionTypeId
- Question Text
- Data Type
- Display Type
- Date Format
- Answer Options/Default Value
- Blank Check
- logChange
- logAlert
- logSkip
- Invalid Format Alert
- Help Text
- Field Size
- Label
- Length
- Visibility
- Max Length
- Auto Tabbing
This worksheet allows the user to determine the basic parameters of the question included in each form configured in a specific trial. It tracks how each question type is defined, and in conjunction with the Dependencies worksheet, produces the definition XML file. In order to create Question Types, the user must set up certain properties, telling the question how to appear and function. Each unique question is defined here by question type, answer options, etc.
questionTypeId
This property uniquely defines the questionType among all other IDs of any element in the application/trial. It defines the appearance of the question on the formId.
Some examples of the questionTypeId property are: subjectId, examDate, race, height, examTime.
Note: questionTypeId should not exceed 255 characters.
Question Text
This attribute allows the user to enter the question text as it should display on the screen. It must be encoded to fit inside XML tags. Some examples of Question Text are: Subject Identification, Date of Examination, Race, Height, and Time of Examination. The text will be displayed in the same manner in which it is entered in this field. Some HTML codes may be necessary to display certain characters.
BEST PRACTICE: It is a good practice to always have Question Text because if there is no question text, the Question column of the Query Manager will appear blank. Furthermore, nothing will appear in the Top Alerts and Queries (in Trial Summary) when there is no Question Text.
Data Type
This attribute provides format checking that mostly affects acceptable input format and SAS output. Available data types include:
Date | Allows for a date and/or time to be entered that matches the programmed Date Format. See the Date Format section below for more information on date and time formats that can be used. |
---|---|
String | Allows for any character to be entered (do not make everything string for SAS exports, use integer, float, or date because that helps with calculations on exports). |
Integer | Allows for whole numbers. |
Float | Allows for decimal or whole number. |
Reference | Allows for a form or question value to be referenced as the answer option for the current question (e.g. On a Con Med form when trying to reference an Adverse Event to a Con Med the reference data type will list all adverse events as an answer option). See Reference Questions page for more information. |
PartialDate | Allows for date and/or time components to be declared unknown. See the Date Format section below and the Partial Date help page for more information. |
File | Allows for files to be displayed. The Value of the field will be the document ID of the attached form from Files Manager.Note: Only use in conjunction with the Image Display Type and within a Fountayn DCT integration. |
Display Type
Defines how answer options should appear in the question. Available display types include:
Text | Allows for characters (alpha, numeric, whitespace, or symbols) to be entered into a one line text area. A maximum length of 4000 characters can be accepted in this text field. |
---|---|
MultiLineText | Allows for characters (alpha, numeric, whitespace, or symbols) to be entered across multiple lines of text. A maximum length of 4000 characters can be accepted in this text field. |
Radio | Allows for a predetermined list of possible responses, of which a single response may be submitted.Note: Radio does not allow the response to be unchecked. |
RadioCheckbox | Same as a Radio but the option can be deselected and reselected. |
Checkbox | Allows for a checkbox that can be selected and unselected.Note: Checkbox does not allow for display text to be defined. The value once the Checkbox is selected is true or false. |
MultiCheckbox | Allows for a predetermined list of possible responses, of which multiple responses to be submitted.Note: MultiCheckbox must be programmed as a String or errors will occur when saving the question. Also, interval values for each answer option should be unique and should not contain characters that other answer options contain. |
PopUpSelect | Produces a popup window after the user clicks the icon beside the question. The popup contains the display value of each answer option configured for the question. Once the user selects an option, the popup will close and the selected option will populate within the answer space.Note: The user can change the answer or enter their own response in the answer space. |
Select | Allows for a predetermined list of possible responses provided in a dropdown menu, of which only one selected response may be submitted. |
MultiSelect | Allows for a predetermined list of possible responses provided in a dropdown menu, of which multiple selected responses can be submitted. |
PlainText | Same as Text but does not allow data entry roles to enter or change the value. |
Slider | Allows for a range selection to be displayed with a slider bar that can be moved along the predetermined numeric range to select an answer. The answer can be selected by dragging the slider with the mouse, using the arrow keys on the keyboard or using the “Page Up” and “Page Down” keys on the keyboard. The accepted DataType is Integer. |
PartialDate | Allows for a partial date to be entered into a one line text area based on the defined Date Format. See the Date Format section below and Partial Date help page for more information. |
PartialDateTime | This can be used to display partial dates that are composed of both date and time fields. The partial date value will be displayed in separate input fields for the date and the time. See the Date Format section below and the Partial Date help page for more information. |
User | This can be used to display a drop down menu of system users having access to the record in a specified role. Enter ‘havingRoles:roleName’ in the ‘Answer Option / Default Value’ column, where ‘roleName’ is the name of the required user role. For example, havingRoles:Medical Monitor will display a list of all system users with access to the record in the Medical Monitor role. |
UserForSubForm | Similar to display type ‘user’, this can be used to display a drop down menu of system users having access to the record in a specified role and additionally will create a sub form that can only be edited by the selected user. This display type is typically used in Adjudication workflows. In the Date Format column, enter the form ID of the sub form to be created. Enter ‘havingRoles:roleName’ in the ‘Answer Option / Default Value’ column, where ‘roleName’ is the name of the required user role. |
View | This can be used to display the current value of another questionType. The absolute or relative path to the source question should be provided in the ‘Answer Option / Default Value’ column. |
Image | Allows for images that are attached to the form to be displayed within the field.Note: Only use in conjunction with the File Data Type and within a Fountayn DCT Integration. |
Date Format
This property defines the date or time format. When the data type is Date, this is the format used to validate and parse the string submitted for a date. Provide the Java Date Format to be used in parsing the date of a Date type.
Available date formats include: MMM-dd-yyyy, MM/dd/yyyy, MM-dd-yyyy, dd/MMM/yyyy, dd-MMM-yyyy, yyyy-MM-dd, yyyy/MM/dd, MMM-dd-yyyy HH:mm, MM/dd/yyyy HH:mm, MM-dd-yyyy HH:mm, dd/MMM/yyyy HH:mm, dd-MMM-yyyy HH:mm, yyyy-MM-dd HH:mm, yyyy/MM/dd HH:mm, HH:mm, HH:mm:ss, yyyy-MM-dd and yyyy/MM/dd
M = Month
H = 24-hour clock
m = minutes
Partial dates are configured similar to normal dates. See the Partial Date help page for more information.
Definitions have been expanded, there is no need to write additional edit checks to ensure the date format entered matches the format defined in Date Format. The Date Format check will ensure the date format entered matches, including leading zeros. If it does not match the Invalid Format Alert will fire.
For existing studies before the 14.0.0 release, a default property useClassicDateFormatLogic will be implemented so the new format logic is not applied along with the date expressions. If for an existing study the new format logic is required. The App Property of useClassicDateFormatLogic should be set to false.
Answer Options/Default Value
This property defines available Answer Options for questions supporting options. Each option must have a data value and a display value. The data value is the stored value or unique identifier used to determine the value – it is that value that is exported. The display value determines how the option will be displayed to the user.
Answer Options are defined using the following XML specification:
1||White::2||Asian::3||Black::4||Hispanic::5||Other
Two pipe delimited lines separate the stored values from the displayed values; two colons separate answer options. The stored value (1, 2, 3, 4, or 5) will be sent upon export.
Note: When using Default Values, the values will appear in exports when the eCRF with the Default Value has been saved.
Note: Use ‘integer’ Data Type when using an integer stored value.
Note: Stored values cannot have a single colon (:) in the stored value.
For Reference data types the reference path should be specified in the Answer Option field. The reference path needs to start at the root of the record (e.g. /aeSummary/ae[n]/aeevent). A slash should be at the beginning of the path and a slash between all form segments. A reference can be a form or a question. See Reference Questions page for more information.
For referencing the CodeList ID in the Question Types – Definition tab, create the question like you would in any other instance. In the Answer Options / Default Value of this tab, simply enter “^^ID” where “ID” is replaced with your CodeList ID.
A Sequence Number assignment can be referenced to assign the sequence number of the form to the question. Place “sequenceNumber” in the Answer Option field.
To configure the slider, a comma-separated list of seven values must be defined. These values must be specified in the order that they are presented below.
- Lowest Value: Integer. Lowest value on the slider
- Highest Value: Integer. Highest value on the slider
- Small Increment: Integer. The increment used when the arrow keys on the keyboard are used to enter the value.
- Large Increment: Integer. The increment used when the “Page Up” or “Page Down” keys on the keyboard are used to enter the value. Additionally, if the user clicks to the right or the left of the slider, the slider will increase based on the value of the large increment.
- Low Scale Label: String. Label for the low side of the slider
- High Scale Label: String. Label for the high side of the slider
- Include Text Box: Boolean. If set to true, a textbox with the selected slider value will be included.
In the following example, the slider is configured to allow for values between one and seven. The slider bar increments by one and three. By setting the final value to ‘true’ a textbox is included to display the selected integer value.
Blank Check
This property allows you to define if the question should be answered on the form and what happens when left blank. Valid options are “Preferred”, “Required”, “None”, or left blank.
- Preferred: Will fire a red alert when the question is not answered. The alert text will be based on the Property “preferredEntryAlertText”.
- Required: Will fire a black alert when the question is not answered. The alert text will be based on the Property “requiredEntryAlertText”.
- None or left blank: No blank edit check will fire.
Note: The Blank Check feature is introduced to replace the need to write edit check on the Dependencies tab for each question.
logChange
This attribute determines how all users’ explanations for changing values for the question type are logged. An explanation from the user for a change can be required, optional, or not presented at all. Valid options include: no, yesRequired, and yesOptional. If ‘no’, the user will not be prompted, upon submission, to provide a reason for changing the data value. If ‘yesRequired,’ the user will be prompted to provide a reason for changing the data value (per FDA requirement) – via the black box appearing after a value change, and the user will not be able to save the data until a reason is provided. If ‘yesOptional’, the user will be prompted to provide a reason for changing the data value but may save the data without providing a reason for change.
BEST PRACTICE: Use ‘yesRequired’ for all questions.
Note: Exception- This configuration can be overwritten with the app property plainTextLogChangeNo such that an RFC is not requested on questions with a display type of “PlainText”. If the plainTextLogChangeNo property is set to “true”, all questions with a display type of “PlainText” will behave as if logChange is set to “no” regardless of the logChange setting at the question level.
logAlert
The attribute determines how a user logs reasons for alerts on the eCRFs. This attribute’s valid options include: ‘no,’ ‘yesRequired,’ and ‘yesOptional.’ If ‘no,’ the user will not be prompted to provide a reason why the alert was triggered. If ‘yesRequired,’ the user will be prompted to provide a reason explaining why the data triggered the alert and will not be able to save the data until a reason is provided. If ‘yesOptional’ (almost always used), the user will be prompted to supply a reason why the data triggered the alert from the box provided, but may save the data without providing a reason.
TIP:’yesRequired’ should not be used as this setting does not allow the user to save the form until a reason is provided. An exception would be on Inclusion and Exclusion criteria when the client requires a reason for not meeting the study criteria.
logSkip
This attribute’s valid options include: ‘no’, ‘yesRequired’ or ‘yesOptional’. It provides a log of the method under which a question is skipped. However, it does not force a question to be answered, which is enforced by dependencies. Always use ‘no,’ – the user will not be prompted to provide a reason why the data value was skipped. If ‘yesRequired’ the user would be prompted to provide a reason why the data value was skipped, and the user would not be able to save the data until the reason is provided. If ‘yesOptional,’ the user would be prompted to provide a reason why the data value was skipped, but would be able to save the data without providing a reason for skipping the data field.
Invalid Format Alert
This property allows you to specify the text to be displayed when the user makes an entry of the wrong data type; e.g., “The value entered must be a date (dd/MMM/yyyy). Please correct.” If text is not entered, a black alert will appear, and the user will not know what to do.
Date denotes a calendar date or time of day; integer denotes the use of whole numbers; float denotes the use of numbers including a decimal point; and string denotes characters that use text. This property is required for all Data Types, except String.
Help Text
Though not required, this property allows for the addition of optional help text for a question. When text is entered for this property, a question mark icon will appear beside the question as shown below. When this question mark is clicked, a new window appears displaying the help text.
Field Size
Allows for the restriction of width on different question fields. This is a general width that approximates the field width based on the number of characters. It does not restrict the number of characters allowed to be entered into a field. The format of the data depends on the question display type.
Question Display Type | Format | Default Value |
---|---|---|
Contact, PlainText, PopUpSelect, Text | Integer | 30 |
MultiLineText | Integer::Integer (number of rows::number of columns) | 6::35 (approximately 6 rows and 35 columns) |
Select | Integer | Based on App Property, maxUnrestrictedSelectLength |
Note: For the ‘Select’ Display Type, the Field Size only impacts the size of the box when it is closed. When the user clicks the box so that the options appear, the size of the dropped down box will depend on the data content and the available size of the browser. See an example below.
Label
This field allows for the definition of a custom label on the specified question type. Please note that this is NOT the standard SAS descriptive label. This will replace the variable name in the header column of the export. If you want to create true SAS labels, you need to configure them in the export tab. This information can be found in the custom export mapping documentation. The value for this cell is a text string. The contents of this field will be used to represent the question type ID used in export tables. The export formatter parameter exportCustomLabels sets whether or not the field is included in exports.
- If using a label in a SAS export, be sure that the label is no more than 32 characters in length.
- Do not use special characters as SAS will not accept them.
- Be aware that if two question types on the same form share a label, one of the two values data values will be overwritten by the other causing data to not lineup/appear in the export.
- If modifyColumnCasing, columnUpperCase or columnLowerCase are configured, they will change the casing of the label
- If showDisplayValue is also configured, the name of the column will be the Label set on the Question Types worksheet followed by ‘_display’
- When using combineFormTypes, columns can be forcibly combined using a common label for the question types.
- When using length_fieldName for a question with a label, the fieldname should be the label rather than the question type id.
Length
This field accepts an integer value that specifies, in number of characters, the allowable length of the question’s entry in an export table. The formatter parameter exportCustomLengths sets whether or not the field is included in exports. Be aware that if combineFormTypes is used and two question types share a label, they must also have the same Length.
Note: This feature is similar in function to the SAS writer parameter length_fieldName. This parameter will override the contents of the Length column if defined in the Exports worksheet.
- If combineFormTypes is set and two question types share the same label or question alias, they need to have the same Length.
- Question types with the length_fieldName property in use will not be truncated.
- Value pairs generated by includeDecodeFile are also truncated by this feature.
- If the SAS writer parameter, adaptiveLength, is set to true, values will not be truncated.
- The ‘Length’ formatter truncates all values including number values. To round number values, the SAS writer parameter length_fieldName should be used.
- If showDisplayValues is also configured for the export, the display column will be the same length as the length set in the Question Types – Definition spreadsheet
Visibility
This field allows for the definition of dependent questions. The Visibility column will accept a boolean expression that compares a questionTypeId’s data value to another value. When this expression evaluates to true, the question will be rendered visible. The dependency depicted below would cause the ‘raceoth’ question to only appear when the answer for the ‘race’ question is set to ‘Other’.
- Dependent Questions that have an answer, an alert or need an RFC will be visible regardless of their configuration
- Be sure to check the title of the question when creating dependent questions. If the questions are numbered, the numbers may appear to skip if a numbered question is hidden
- Alerts on dependent questions should be configured such that they do not fire when the question should be hidden.
Max Length
The Max Length value is tied directly to the Auto Tabbing entry for the automatic tabbing feature. The Max Length value designates the max character length for a given field before the cursor automatically advances to the next field on the form, if Auto Tabbing is set to true.
Auto Tabbing
The Auto Tabbing column allows you to configure automatic tabbing for text and multi-line text fields on a form. Setting auto tabbing to true for a question field in a form ties it to the value in the Max Length column. Once the max character length in a field is met, the cursor automatically advances to the next field. If set to false, auto tabbing is not enabled for that specific field and you can navigate with a mouse click or by using the Tab button.
Auto tabbing only works for the initial form entries when the form has blank answer status. Once you save the form, use a mouse click or select the Tab button to move from field to field to make any changes or corrections.
Need more help?
Please visit the Fountayn Contact Information page.