<a id="diagnostic-catalog"></a>
<a id="id1"></a>
# Diagnostic Catalog

This page lists the Diagnostics available, their purpose and settings. Diagnostics are divided into a number of categories.

<a id="build-quality"></a>
## Build Quality

TrialGrid recommends running on all studies and libraries

- **ID:** 0004

  **Name:** CheckBoxes all have format of 1

  **Description:** Ensure all Checkbox Fields have a format of 1. Fix will set format of Field to 1.

  > | Name | Description | Setting Type | Default Value |
  > | --- | --- | --- | --- |
  > | Ignore Inactive | Ignore Inactive Fields and Fields on Inactive Forms. | Boolean | True |
  > | Field OID Exclusions | List of Field OIDs to exclude, one per line.<br>Use wildcards to exclude Field OIDs starting or ending with characters, e.g.<br>FLD*<br>*DAT<br>or regular expressions for more complex pattern matching (see help for more information)<br>^FLD.*DAT$ | Textarea |  |

- **ID:** 0005

  **Name:** FormOIDs reserved by Windows / DOS

  **Description:** Ensure that Form OIDs do not use Windows/DOS reserved words. See [Reserved Words List in Rave](https://learn.medidata.com/en-US/bundle/rave-architect-stg/page/alphabetical\_list\_of\_reserved\_words\_used\_in\_rave.html)

  > | Name | Description | Setting Type | Default Value |
  > | --- | --- | --- | --- |
  > | Ignore Inactive | Ignore Inactive Forms | Boolean | True |
  > | Form OID Exclusions | List of Form OIDs to exclude, one per line.<br>Use wildcards to exclude Form OIDs starting or ending with characters, e.g.<br>FORM*<br>*DAT<br>or regular expressions for more complex pattern matching (see help for more information)<br>^FORM.*DAT$ | Textarea |  |

- **ID:** 0006

  **Name:** Field OIDs Reserved for Lab View Columns

  **Description:** The Rave Lab View reserves some Field names, these should not be used as Field OIDs. See [Reserved Words List in Rave](https://learn.medidata.com/en-US/bundle/rave-architect-stg/page/alphabetical\_list\_of\_reserved\_words\_used\_in\_rave.html)

  > | Name | Description | Setting Type | Default Value |
  > | --- | --- | --- | --- |
  > | Ignore Inactive | Ignore Inactive Fields and Fields on Inactive Forms. | Boolean | True |
  > | Field OID Exclusions | List of Field OIDs to exclude, one per line.<br>Use wildcards to exclude Field OIDs starting or ending with characters, e.g.<br>FLD*<br>*DAT<br>or regular expressions for more complex pattern matching (see help for more information)<br>^FLD.*DAT$ | Textarea |  |
  > | Form OID Exclusions | List of Form OIDs to exclude, one per line.<br>Use wildcards to exclude Form OIDs starting or ending with characters, e.g.<br>FORM*<br>*DAT<br>or regular expressions for more complex pattern matching (see help for more information)<br>^FORM.*DAT$ | Textarea |  |

- **ID:** 0007

  **Name:** FormOIDs use only valid characters

  **Description:** Ensure that FormOIDs are defined with only A-Z, 0-9 and \_ character

  > | Name | Description | Setting Type | Default Value |
  > | --- | --- | --- | --- |
  > | Ignore Inactive | Ignore Inactive Forms | Boolean | True |

- **ID:** 0008

  **Name:** Field OIDs Reserved for Clinical View Header Columns

  **Description:** Ensure Field OIDs do not use names reserved for Clinical View Header Columns. See [Reserved Words List in Rave](https://learn.medidata.com/en-US/bundle/rave-architect-stg/page/alphabetical\_list\_of\_reserved\_words\_used\_in\_rave.html)

  > | Name | Description | Setting Type | Default Value |
  > | --- | --- | --- | --- |
  > | Ignore Inactive | Ignore Inactive Fields and Fields on Inactive Forms. | Boolean | True |
  > | Field OID Exclusions | List of Field OIDs to exclude, one per line.<br>Use wildcards to exclude Field OIDs starting or ending with characters, e.g.<br>FLD*<br>*DAT<br>or regular expressions for more complex pattern matching (see help for more information)<br>^FLD.*DAT$ | Textarea |  |

- **ID:** 0009

  **Name:** Field OIDs Reserved By SQL

  **Description:** Ensure Field OIDs do not use names reserved for SQL. See [Reserved Words List in Rave](https://learn.medidata.com/en-US/bundle/rave-architect-stg/page/alphabetical\_list\_of\_reserved\_words\_used\_in\_rave.html)

  > | Name | Description | Setting Type | Default Value |
  > | --- | --- | --- | --- |
  > | Ignore Inactive | Ignore Inactive Fields and Fields on Inactive Forms. | Boolean | True |
  > | Field OID Exclusions | List of Field OIDs to exclude, one per line.<br>Use wildcards to exclude Field OIDs starting or ending with characters, e.g.<br>FLD*<br>*DAT<br>or regular expressions for more complex pattern matching (see help for more information)<br>^FLD.*DAT$ | Textarea |  |

- **ID:** 0010

  **Name:** FieldOIDs use only valid characters

  **Description:** Ensure that FieldOIDs are defined with only A-Z, 0-9 and \_ character

  > | Name | Description | Setting Type | Default Value |
  > | --- | --- | --- | --- |
  > | Ignore Inactive | Ignore Inactive Fields and Fields on Inactive Forms. | Boolean | True |

- **ID:** 0014

  **Name:** Labels do not have data entry Field settings

  **Description:** Label Fields do not have data entry field settings (VisualVerify, SourceDocument, ReviewGroup, LowerRange, UpperRange, NCLowerRange, NCUpperRange)

  > | Name | Description | Setting Type | Default Value |
  > | --- | --- | --- | --- |
  > | Ignore Inactive | Ignore Inactive Fields and Fields on Inactive Forms. | Boolean | True |
  > | Field OID Exclusions | List of Field OIDs to exclude, one per line.<br>Use wildcards to exclude Field OIDs starting or ending with characters, e.g.<br>FLD*<br>*DAT<br>or regular expressions for more complex pattern matching (see help for more information)<br>^FLD.*DAT$ | Textarea |  |

- **ID:** 0016

  **Name:** Bypass during migration should be set

  **Description:** These Edit Checks should not be run during migrations

  > | Name | Description | Setting Type | Default Value |
  > | --- | --- | --- | --- |
  > | Ignore Inactive | Ignore Inactive Checks. When set Inactive Checks will be excluded from results. | Boolean | True |
  > | All Checks | When selected this option enforces that all Checks must have BypassDuringMigration set.<br>If not selected the Diagnostic will only consider Checks with one of these Check Actions, which should never be run during Migrations: BalanceCreateSubject, BalanceDispense, BalanceRandomize, BalanceRandomizeAndDispense, BalanceRedispense, BalanceSubjectDeactivate, BalanceSubjectExclude, BalancePSALUpdate and SendMessage | Boolean | False |
  > | Check_Exclusions | List of Checks to exclude, one per line.<br>Use wildcards to exclude Check Names starting or ending with characters, e.g.<br>CHK*<br>*STD<br>or regular expressions for more complex pattern matching (see help for more information)<br>^CHK.*STD$ | Textarea |  |

- **ID:** 0017

  **Name:** Identify incomplete or invalid Edit Checks

  **Description:** Rave allows incomplete or invalid Edit Checks to be created and saved. This Diagnostic identifies them.

  > | Name | Description | Setting Type | Default Value |
  > | --- | --- | --- | --- |
  > | Check_Exclusions | List of Checks to exclude, one per line.<br>Use wildcards to exclude Check Names starting or ending with characters, e.g.<br>CHK*<br>*STD<br>or regular expressions for more complex pattern matching (see help for more information)<br>^CHK.*STD$ | Textarea |  |

- **ID:** 0020

  **Name:** Check text strings for possible spelling mistakes

  **Description:** Compares all text in the Draft against a list of more than 4,000 commonly misspelled US English words and a comprehensive US-language dictionary including medical terms. Misspellings are highlighted and correct spelling suggested. Note that this function uses a Large Language Model (AI) which has usage limits. No data from this spellcheck is shared with any 3rd party or used for AI training data.

  > | Name | Description | Setting Type | Default Value |
  > | --- | --- | --- | --- |
  > | Properties to include | Properties of type Text to include in the diagnostic | Property | Drafts\|Confirmation Message Drafts\|Signature Prompt Forms\|Name Forms\|Help Text Fields\|Pre Text Fields\|Help Text Dictionary Entries\|User Data String Check Actions\|Action String Email Alerts\|Body Email Alerts\|Subject |
  > | Exclude_Oids | Exclude Folder, Form and Field OIDs from the spell-check, e.g. if there is a Form with OID 'ADDINF' then 'ADDINF' will be excluded from the spell check so that if the Form Help Text is 'Complete Form ADDINF' it will not be reported as a suspected incorrect spelling. | Boolean | False |
  > | Exclusions | List of Words to exclude, one per line.<br>Use wildcards to exclude Words starting or ending with characters, e.g.<br>FLD*<br>*DAT<br>or regular expressions for more complex pattern matching (see help for more information)<br>^FLD.*DAT$ | Textarea |  |
  > | Ignore acronyms of length equal or longer than | Set this value to ignore acronyms (all CAPS words) of length greater than or equal to the cutoff value. e.g. 6 would ignore RECIST. | Text | 100 |

- **ID:** 0022

  **Name:** FormOIDs should not start with numbers

  **Description:** Forms starting with numbers 123AE get turned into \_123AE in SAS extracts/CV names. Best practice is not to use OIDs starting with numbers.

  > | Name | Description | Setting Type | Default Value |
  > | --- | --- | --- | --- |
  > | Form OID Exclusions | List of Form OIDs to exclude, one per line.<br>Use wildcards to exclude Form OIDs starting or ending with characters, e.g.<br>FORM*<br>*DAT<br>or regular expressions for more complex pattern matching (see help for more information)<br>^FORM.*DAT$ | Textarea |  |

- **ID:** 0026

  **Name:** Active Checks and Derivations should not reference inactive Forms or Fields

  **Description:** Active Checks and Derivations that reference inactive Forms or Fields will not run and cannot be published to a Version in Architect. Fix will set Checks and Derivations Inactive.

  > | Name | Description | Setting Type | Default Value |
  > | --- | --- | --- | --- |
  > | Check_Exclusions | List of Checks to exclude, one per line.<br>Use wildcards to exclude Check Names starting or ending with characters, e.g.<br>CHK*<br>*STD<br>or regular expressions for more complex pattern matching (see help for more information)<br>^CHK.*STD$ | Textarea |  |

- **ID:** 0027

  **Name:** Record Position should be set to 0 for Standard Fields in Edit Checks and Derivations

  **Description:** Standard Fields should only be referenced with RecordPosition 0 in Check Steps, Check Actions and Derivation Steps. Referencing Standard Fields without setting RecordPosition = 0 in a Check or Derivation which also references Log Fields may lead to unexpected results. Note: Rave 2018.1.0 will not allow Edit Checks and Derivations to be created or saved without RecordPosition 0 for standard Fields.

  > | Name | Description | Setting Type | Default Value |
  > | --- | --- | --- | --- |
  > | Ignore Inactive | Ignore Inactive Checks and Derivations. When set Inactive Checks and Derivations will be excluded from results. | Boolean | True |
  > | Check_Exclusions | List of Checks to exclude, one per line.<br>Use wildcards to exclude Check Names starting or ending with characters, e.g.<br>CHK*<br>*STD<br>or regular expressions for more complex pattern matching (see help for more information)<br>^CHK.*STD$ | Textarea |  |
  > | Derivation exclusions | List of Derivations to exclude, one per line.<br>Use wildcards to exclude Derivation Names starting or ending with characters, e.g.<br>Z*<br>*STD<br>or regular expressions for more complex pattern matching (see help for more information)<br>^Z.*STD$ | Textarea |  |

- **ID:** 0031

  **Name:** Edit Check SYS_ prefix

  **Description:** Rave reserves the SYS\_ prefix for Edit Checks that it creates for Field range checks and IsRequired. Rave will not export any Edit Check with the prefix SYS\_ to the Architect Loader Spreadsheet so it is best practice to avoid the SYS\_ prefix in user-defined Edit Checks.

  > | Name | Description | Setting Type | Default Value |
  > | --- | --- | --- | --- |
  > | Check_Exclusions | List of Checks to exclude, one per line.<br>Use wildcards to exclude Check Names starting or ending with characters, e.g.<br>CHK*<br>*STD<br>or regular expressions for more complex pattern matching (see help for more information)<br>^CHK.*STD$ | Textarea |  |

- **ID:** 0032

  **Name:** QueryFutureDate should be set for Date and DateTime Fields

  **Description:** Generally, date and datetime Fields should not allow future dates. Identifies Fields with ControlType set to Date or DateTime. This Diagnostic ignores Derived Fields. The Fix will set QueryFutureDate to True.

  > | Name | Description | Setting Type | Default Value |
  > | --- | --- | --- | --- |
  > | Ignore Inactive | Ignore Inactive Forms | Boolean | True |
  > | Ignore Inactive | Ignore Inactive Fields and Fields on Inactive Forms. | Boolean | True |
  > | Field OID Exclusions | List of Field OIDs to exclude, one per line.<br>Use wildcards to exclude Field OIDs starting or ending with characters, e.g.<br>FLD*<br>*DAT<br>or regular expressions for more complex pattern matching (see help for more information)<br>^FLD.*DAT$ | Textarea |  |

- **ID:** 0033

  **Name:** Numeric fields should have query non-conformance set

  **Description:** Numeric Fields in Rave are represented as text Fields and users are able to enter values which do not match the format. If an entry is non-conformant then it should be queried.

  > | Name | Description | Setting Type | Default Value |
  > | --- | --- | --- | --- |
  > | Ignore Inactive | Ignore Inactive Fields and Fields on Inactive Forms. | Boolean | True |
  > | Field OID Exclusions | List of Field OIDs to exclude, one per line.<br>Use wildcards to exclude Field OIDs starting or ending with characters, e.g.<br>FLD*<br>*DAT<br>or regular expressions for more complex pattern matching (see help for more information)<br>^FLD.*DAT$ | Textarea |  |
  > | Form OID Exclusions | List of Form OIDs to exclude, one per line.<br>Use wildcards to exclude Form OIDs starting or ending with characters, e.g.<br>FORM*<br>*DAT<br>or regular expressions for more complex pattern matching (see help for more information)<br>^FORM.*DAT$ | Textarea |  |
  > | Entry Restriction Role Names | Exclude fields that are Entry or View Restricted to ALL of these EDC Roles. If a field (or its form) is restricted to all selected roles, it will not be checked. | EDCRole |  |

- **ID:** 0034

  **Name:** Fields which require translation should not also be marked as required

  **Description:** Fields which require translation should not also be marked as required. The Fix will set IsRequired to False.

  > | Name | Description | Setting Type | Default Value |
  > | --- | --- | --- | --- |
  > | Field OID Exclusions | List of Field OIDs to exclude, one per line.<br>Use wildcards to exclude Field OIDs starting or ending with characters, e.g.<br>FLD*<br>*DAT<br>or regular expressions for more complex pattern matching (see help for more information)<br>^FLD.*DAT$ | Textarea |  |

- **ID:** 0039

  **Name:** All question Fields should have a pre-text label

  **Description:** Question Fields should have a pre-text label describing their purpose.

  > | Name | Description | Setting Type | Default Value |
  > | --- | --- | --- | --- |
  > | Field OID Exclusions | List of Field OIDs to exclude, one per line.<br>Use wildcards to exclude Field OIDs starting or ending with characters, e.g.<br>FLD*<br>*DAT<br>or regular expressions for more complex pattern matching (see help for more information)<br>^FLD.*DAT$ | Textarea |  |

- **ID:** 0046

  **Name:** Place Sticky Check Action should not contain HTML tags

  **Description:** The message for a Place Sticky Check Action cannot contain HTML tags. Such tags will appear escaped in Rave (i.e. will not display as expected). This Diagnostic can identify and automatically remove HTML tags without changing the contained text.

  > | Name | Description | Setting Type | Default Value |
  > | --- | --- | --- | --- |
  > | Check_Exclusions | List of Checks to exclude, one per line.<br>Use wildcards to exclude Check Names starting or ending with characters, e.g.<br>CHK*<br>*STD<br>or regular expressions for more complex pattern matching (see help for more information)<br>^CHK.*STD$ | Textarea |  |

- **ID:** 0047

  **Name:** Data Dictionaries should not have duplicate Coded Values or User Values

  **Description:** Check that there are no duplicate Code or Decode values within a Data Dictionary.

  > | Name | Description | Setting Type | Default Value |
  > | --- | --- | --- | --- |
  > | Data_Dictionary_Exclusions | List of Data Dictionaries to exclude, one per line.<br>Use wildcards to exclude Data Dictionary Names starting or ending with characters, e.g.<br>DD*<br>*STD<br>or regular expressions for more complex pattern matching (see help for more information)<br>^DD.*STD$ | Textarea |  |
  > | Case_Sensitive_Only | Ignore case differences in Coded Data | Boolean | False |
  > | Check_User_Strings | Check User Strings for duplicates | Boolean | False |

- **ID:** 0049

  **Name:** Data format must be valid for Field control type

  **Description:** Data format must be valid for Field control type.

  > | Name | Description | Setting Type | Default Value |
  > | --- | --- | --- | --- |
  > | Field OID Exclusions | List of Field OIDs to exclude, one per line.<br>Use wildcards to exclude Field OIDs starting or ending with characters, e.g.<br>FLD*<br>*DAT<br>or regular expressions for more complex pattern matching (see help for more information)<br>^FLD.*DAT$ | Textarea |  |

- **ID:** 0050

  **Name:** Data format must be valid for associated Data Dictionary

  **Description:** Data format of Field must be valid for the associated Data Dictionary. For example if the longest Coded Value in a Data Dictionary has 10 characters then the Field DataFormat should be at least $10. If a Field has a numeric DataFormat then Coded Values in the Data Dictionary should be able to fit into that Format.

  > | Name | Description | Setting Type | Default Value |
  > | --- | --- | --- | --- |
  > | Field OID Exclusions | List of Field OIDs to exclude, one per line.<br>Use wildcards to exclude Field OIDs starting or ending with characters, e.g.<br>FLD*<br>*DAT<br>or regular expressions for more complex pattern matching (see help for more information)<br>^FLD.*DAT$ | Textarea |  |
  > | Ignore Inactive | Ignore Inactive Fields and Fields on Inactive Forms. | Boolean | True |

- **ID:** 0052

  **Name:** Where SAS Format is set, it should be valid for the Rave Field Data Format

  **Description:** If a Field has a SAS Format set then that format should be compatible with the Data Format of the Field. For example, Rave fields with Date formats such as "dd/mm/yyyy" should have a SAS Format set such as DTDATE9. or DATETIME22.3 a SAS Format of 1. would not be appropriate. Note that this Diagnostic does not determine if a SAS Date/Time format is appropriate for the display of time precision. Rave stores and outputs all date/times with both date and time parts - even if the Rave Data Format only contains time parts (e.g. hours, minutes and seconds)

  > | Name | Description | Setting Type | Default Value |
  > | --- | --- | --- | --- |
  > | Ignore Inactive | Ignore Inactive Fields and Fields on Inactive Forms. | Boolean | True |
  > | Field OID Exclusions | List of Field OIDs to exclude, one per line.<br>Use wildcards to exclude Field OIDs starting or ending with characters, e.g.<br>FLD*<br>*DAT<br>or regular expressions for more complex pattern matching (see help for more information)<br>^FLD.*DAT$ | Textarea |  |

- **ID:** 0053

  **Name:** Variables should have consistent properties

  **Description:** A variable should have consistent properties across all Fields in which it is used, i.e. the same DataFormat, Data Dictionary (if set) and Unit Dictionary (if set)

  > | Name | Description | Setting Type | Default Value |
  > | --- | --- | --- | --- |
  > | Variable_Exclusions | List of Variables to exclude, one per line.<br>Use wildcards to exclude Variable OIDs starting or ending with characters, e.g.<br>VAR*<br>*DAT<br>or regular expressions for more complex pattern matching (see help for more information)<br>^VAR.*DAT$ | Textarea |  |

- **ID:** 0055

  **Name:** Empty objects (Forms, Data Dictionaries, Unit Dictionaries, Custom Functions, Matrices)

  **Description:** Empty objects may indicate an issue in the study build. Note that Fix will delete the unused object from the Draft.

  > | Name | Description | Setting Type | Default Value |
  > | --- | --- | --- | --- |
  > | Form OID Exclusions | List of Form OIDs to exclude, one per line.<br>Use wildcards to exclude Form OIDs starting or ending with characters, e.g.<br>FORM*<br>*DAT<br>or regular expressions for more complex pattern matching (see help for more information)<br>^FORM.*DAT$ | Textarea |  |
  > | Include Inactive Fields | If set, Inactive fields are included in the count of fields so a Form with all inactive fields is counted as having some fields. If not set, a Form with all inactive fields is considered to have no fields. | Boolean | True |
  > | Data_Dictionary_Exclusions | List of Data Dictionaries to exclude, one per line.<br>Use wildcards to exclude Data Dictionary Names starting or ending with characters, e.g.<br>DD*<br>*STD<br>or regular expressions for more complex pattern matching (see help for more information)<br>^DD.*STD$ | Textarea |  |
  > | Unit_Dictionary_Exclusions | List of Unit Dictionaries to exclude, one per line.<br>Use wildcards to exclude Unit Dictionary Names starting or ending with characters, e.g.<br>UD*<br>*STD<br>or regular expressions for more complex pattern matching (see help for more information)<br>^UD.*STD$ | Textarea |  |
  > | Matrix_Exclusions | List of Matrices to exclude, one per line.<br>Use wildcards to exclude Matrix OIDs starting or ending with characters, e.g.<br>*MAT<br>*DAT<br>or regular expressions for more complex pattern matching (see help for more information)<br>^MAT.*DAT$ | Textarea |  |
  > | Custom_Function_Exclusions | List of Custom Functions to exclude, one per line.<br>Use wildcards to exclude Function Names starting or ending with characters, e.g.<br>CF*<br>*STD<br>or regular expressions for more complex pattern matching (see help for more information)<br>^CF.*STD$ | Textarea |  |

- **ID:** 0056

  **Name:** Fields associated with Coder Dictionaries should have an OID of less than 20 characters length

  **Description:** Fields associated with Coder Dictionaries should have an OID of less than 20 characters length.

  > | Name | Description | Setting Type | Default Value |
  > | --- | --- | --- | --- |
  > | Field OID Exclusions | List of Field OIDs to exclude, one per line.<br>Use wildcards to exclude Field OIDs starting or ending with characters, e.g.<br>FLD*<br>*DAT<br>or regular expressions for more complex pattern matching (see help for more information)<br>^FLD.*DAT$ | Textarea |  |

- **ID:** 0057

  **Name:** Fields associated with Coder Dictionaries should have string formats

  **Description:** Fields associated with Coder Dictionaries should have string formats. Associated Fields means Fields related to Coder Configuration, Coder Supplemental Term or Coder Component Term.

  > | Name | Description | Setting Type | Default Value |
  > | --- | --- | --- | --- |
  > | Field OID Exclusions | List of Field OIDs to exclude, one per line.<br>Use wildcards to exclude Field OIDs starting or ending with characters, e.g.<br>FLD*<br>*DAT<br>or regular expressions for more complex pattern matching (see help for more information)<br>^FLD.*DAT$ | Textarea |  |

- **ID:** 0058

  **Name:** Check Actions should have a matching Check Step

  **Description:** Check Actions should have a matching Check Step. Per Medidata: Check Actions should have a matching Check Step. When there is none available, Rave will not wildcard properly. This means that you may see previously submitted forms or log lines causing an edit to fire incorrectly on the current form or log line being submitted. By having a DataPoint in an action that is not referenced in one of the steps you run the risk of submitting all of the DataPoints in the step, but not the action if it is on a separate form.

  > | Name | Description | Setting Type | Default Value |
  > | --- | --- | --- | --- |
  > | Ignore Inactive | Ignore Inactive Checks. When set Inactive Checks will be excluded from results. | Boolean | True |
  > | Check_Exclusions | List of Checks to exclude, one per line.<br>Use wildcards to exclude Check Names starting or ending with characters, e.g.<br>CHK*<br>*STD<br>or regular expressions for more complex pattern matching (see help for more information)<br>^CHK.*STD$ | Textarea |  |

- **ID:** 0061

  **Name:** Valid HTML tags

  **Description:** Check that HTML tags used in Field strings and Folder Names are supported by Rave (b, i, u, li, ul, ol, sup, br, font, small, h1, h2, h3, h4, p, a). See [HTML Tags in Rave](https://learn.medidata.com/en-US/bundle/rave-architect-stg/page/html\_tags\_in\_rave.html) Note that Rave will accept other HTML tags but the output of PDFs may be affected.

  > | Name | Description | Setting Type | Default Value |
  > | --- | --- | --- | --- |
  > | Ignore Inactive | Ignore Inactive Fields and Fields on Inactive Forms. | Boolean | True |
  > | Field OID Exclusions | List of Field OIDs to exclude, one per line.<br>Use wildcards to exclude Field OIDs starting or ending with characters, e.g.<br>FLD*<br>*DAT<br>or regular expressions for more complex pattern matching (see help for more information)<br>^FLD.*DAT$ | Textarea |  |
  > | Folder_Exclusions | List of Folders to exclude, one per line.<br>Use wildcards to exclude Folder OIDs starting or ending with characters, e.g.<br>FLD*<br>*DAT<br>or regular expressions for more complex pattern matching (see help for more information)<br>^FLD.*DAT$ | Textarea |  |

- **ID:** 0063

  **Name:** Variables targeted by Set DSL Actions are referenced by Check Steps

  **Description:** Each unique Variable that appears in a Set Dynamic Search List Check action, must be referenced in the Check Steps of at least one Edit Check with a Set Dynamic Search List Check action against that Variable. If condition is not met then the Draft cannot be published and a warning "An invalid Edit Check setup was detected for the Dynamic SearchList field" is shown.

- **ID:** 0064

  **Name:** Edit Check Coded Value steps should be compared against valid Data Dictionary Entries

  **Description:** Edit Check Coded Value steps should be compared against valid Data Dictionary Entries

  > | Name | Description | Setting Type | Default Value |
  > | --- | --- | --- | --- |
  > | Ignore Inactive | Ignore Inactive Checks. When set Inactive Checks will be excluded from results. | Boolean | True |
  > | Check_Exclusions | List of Checks to exclude, one per line.<br>Use wildcards to exclude Check Names starting or ending with characters, e.g.<br>CHK*<br>*STD<br>or regular expressions for more complex pattern matching (see help for more information)<br>^CHK.*STD$ | Textarea |  |

- **ID:** 0065

  **Name:** Fields which are not Date or Time Fields should not have date related properties set

  **Description:** Fields which are not Date or Time Fields should not have date related properties set, i.e. should not have QueryFutureDate, CanSetRecordDate, CanSetDataPageDate, CanSetInstanceDate or CanSetSubjectDate set to True (checked)

  > | Name | Description | Setting Type | Default Value |
  > | --- | --- | --- | --- |
  > | Field OID Exclusions | List of Field OIDs to exclude, one per line.<br>Use wildcards to exclude Field OIDs starting or ending with characters, e.g.<br>FLD*<br>*DAT<br>or regular expressions for more complex pattern matching (see help for more information)<br>^FLD.*DAT$ | Textarea |  |

- **ID:** 0066

  **Name:** Checkbox Fields should not have an IsEmpty or IsNotEmpty step in Edit Checks

  **Description:** Checkbox Fields should not have an IsEmpty or IsNotEmpty step in Edit Checks

  > | Name | Description | Setting Type | Default Value |
  > | --- | --- | --- | --- |
  > | Ignore Inactive | Ignore Inactive Checks. When set Inactive Checks will be excluded from results. | Boolean | True |
  > | Check_Exclusions | List of Checks to exclude, one per line.<br>Use wildcards to exclude Check Names starting or ending with characters, e.g.<br>CHK*<br>*STD<br>or regular expressions for more complex pattern matching (see help for more information)<br>^CHK.*STD$ | Textarea |  |

- **ID:** 0067

  **Name:** Forms should have unique names

  **Description:** Forms should have unique names

  > | Name | Description | Setting Type | Default Value |
  > | --- | --- | --- | --- |
  > | Form OID Exclusions | List of Form OIDs to exclude, one per line.<br>Use wildcards to exclude Form OIDs starting or ending with characters, e.g.<br>FORM*<br>*DAT<br>or regular expressions for more complex pattern matching (see help for more information)<br>^FORM.*DAT$ | Textarea |  |

- **ID:** 0068

  **Name:** Date Fields should have at least one check associated with them

  **Description:** Date Fields (Date/Time fields with a Year component) which are Visible and Active and appear on an active Form should have at least one Edit Check that creates a query on them. Dates with no Query Actions may not be adequately checked. Derived Fields are excluded from the Diagnostic results. This Diagnostic ensures VariableOID only Checks are identified as well as Checks specific to a Form/Field combination. Note that this Diagnostic \*does not\* search Custom Functions for Query Actions and it ignores Field-level settings such as QueryFutureDate.

  > | Name | Description | Setting Type | Default Value |
  > | --- | --- | --- | --- |
  > | Field OID Exclusions | List of Field OIDs to exclude, one per line.<br>Use wildcards to exclude Field OIDs starting or ending with characters, e.g.<br>FLD*<br>*DAT<br>or regular expressions for more complex pattern matching (see help for more information)<br>^FLD.*DAT$ | Textarea |  |

- **ID:** 0069

  **Name:** Identify Forms not included in a Matrix or in an AddForm Check Action

  **Description:** Forms may be added via inclusion in a Matrix or via an AddForm Check Action on an Active Check. This Diagnostic identifies Forms which are not added to the study via either method i.e. It identifies Forms which are not used. This Diagnostic will indicate if a Form might be added via a Custom Function.

  > | Name | Description | Setting Type | Default Value |
  > | --- | --- | --- | --- |
  > | Form OID Exclusions | List of Form OIDs to exclude, one per line.<br>Use wildcards to exclude Form OIDs starting or ending with characters, e.g.<br>FORM*<br>*DAT<br>or regular expressions for more complex pattern matching (see help for more information)<br>^FORM.*DAT$ | Textarea |  |
  > | Ignore Inactive | Ignore Inactive Forms | Boolean | True |
  > | Matrix_Exclusions | List of Matrices to exclude, one per line.<br>Use wildcards to exclude Matrix OIDs starting or ending with characters, e.g.<br>*MAT<br>*DAT<br>or regular expressions for more complex pattern matching (see help for more information)<br>^MAT.*DAT$ | Textarea |  |

- **ID:** 0070

  **Name:** Check text strings for non-ASCII characters

  **Description:** Checks the draft for instances of non-ASCII characters which may render poorly in PDF copies of CRFs.

  > | Name | Description | Setting Type | Default Value |
  > | --- | --- | --- | --- |
  > | Properties | Properties to include in the diagnostic | Property | Drafts\|Confirmation Message Drafts\|Signature Prompt Folders\|Name Matrices\|Matrix Name Forms\|Name Forms\|Help Text Fields\|Pre Text Fields\|Header Text Fields\|Help Text Fields\|Number Data Dictionaries\|Name Dictionary Entries\|User Data String Unit Dictionaries\|Name Unit Dictionary Entries\|Unit String Check Actions\|Action String Email Alerts\|Body Email Alerts\|Subject Custom Functions\|Function Name |
  > | Exclusions | List of Characters or character codes to exclude/ignore, separated by commas. Some useful defaults for common characters: •,“,”,–,²,’,´,‘,µ,α,º,160 (160 is non-breaking space code) | Textarea |  |
  > | Ignore Field PreText | Ignore Field question text for Label fields | Boolean | False |

- **ID:** 0071

  **Name:** Find Required Fields which are View/Entry Restricted from Site Users

  **Description:** Checks Draft for Fields which are View or Entry Restricted at the Field or Form level for EDC Site Roles.

  > | Name | Description | Setting Type | Default Value |
  > | --- | --- | --- | --- |
  > | Field OID Exclusions | List of Field OIDs to exclude, one per line.<br>Use wildcards to exclude Field OIDs starting or ending with characters, e.g.<br>FLD*<br>*DAT<br>or regular expressions for more complex pattern matching (see help for more information)<br>^FLD.*DAT$ | Textarea |  |
  > | Obsolete - do not use | Obsolete - do not use | Textarea |  |
  > | Role Names | List of EDC Roles which are site users. | EDCRole |  |

- **ID:** 0072

  **Name:** Find duplicate edit checks

  **Description:** Checks the draft for duplicate Edit Checks, and optionally Edit Checks which have the same logic or actions but not both the same. When Edit Checks have the same logic but different actions, you may wish to consolidate them into a single Check.

  > | Name | Description | Setting Type | Default Value |
  > | --- | --- | --- | --- |
  > | Ignore Inactive | Ignore Inactive Checks. When set Inactive Checks will be excluded from results. | Boolean | True |
  > | Check_Exclusions | List of Checks to exclude, one per line.<br>Use wildcards to exclude Check Names starting or ending with characters, e.g.<br>CHK*<br>*STD<br>or regular expressions for more complex pattern matching (see help for more information)<br>^CHK.*STD$ | Textarea |  |
  > | Different_Actions | Include Edit Checks with the same logic but different actions | Boolean | False |
  > | Different_Logic | Include Edit Checks with the same actions but different logic | Boolean | False |

- **ID:** 0073

  **Name:** Dictionary Field default values

  **Description:** When a Field is related to a Dictionary, any default value(s) set for that Field should be found in the Dictionary. Note that for log field defaults Rave will stop adding default log lines as soon as it reaches a value that is not in the dictionary. So if an invalid value is found in the \|middle\|of\|a\|list then the invalid value and all the values after it will not be created even if the ones after are valid.

  > | Name | Description | Setting Type | Default Value |
  > | --- | --- | --- | --- |
  > | Case Sensitive? | When set (checked) a Default value of "One" will not match a Dictionary coded value of "ONE". Rave is case-insensitive but it is a good habit to use exact Coded Values so as not to get confused with User String values. | Boolean | False |
  > | Field OID Exclusions | List of Field OIDs to exclude, one per line.<br>Use wildcards to exclude Field OIDs starting or ending with characters, e.g.<br>FLD*<br>*DAT<br>or regular expressions for more complex pattern matching (see help for more information)<br>^FLD.*DAT$ | Textarea |  |

- **ID:** 0076

  **Name:** Non-Zero Recordposition for Log Fields in Edit Checks and Derivations

  **Description:** Log Fields should never be referenced with RecordPosition 0 in Check and Derivation Steps and in Check Actions. Unlike Standard Fields which have "shadow values" copied to all Log Records, Log Fields have no valid value on the Record with RecordPosition 0.

  > | Name | Description | Setting Type | Default Value |
  > | --- | --- | --- | --- |
  > | Check_Exclusions | List of Checks to exclude, one per line.<br>Use wildcards to exclude Check Names starting or ending with characters, e.g.<br>CHK*<br>*STD<br>or regular expressions for more complex pattern matching (see help for more information)<br>^CHK.*STD$ | Textarea |  |
  > | Derivation exclusions | List of Derivations to exclude, one per line.<br>Use wildcards to exclude Derivation Names starting or ending with characters, e.g.<br>Z*<br>*STD<br>or regular expressions for more complex pattern matching (see help for more information)<br>^Z.*STD$ | Textarea |  |
  > | Ignore Inactive | Ignore Inactive Checks and Derivations. When set Inactive Checks and Derivations will be excluded from results. | Boolean | True |

- **ID:** 0078

  **Name:** Data Status should not be used in Edit Check steps

  **Description:** Rave Architect has a Data Value of 'Data Status' which can be selected when creating Edit Checks steps but is: 'not currently in use' according to [Medidata documentation](https://learn.medidata.com/en-US/bundle/rave-architect-stg/page/creating\_check\_steps\_in\_rave\_architect.html). The Fix will change 'Data Status' to 'DataPoint'.

  > | Name | Description | Setting Type | Default Value |
  > | --- | --- | --- | --- |
  > | Check_Exclusions | List of Checks to exclude, one per line.<br>Use wildcards to exclude Check Names starting or ending with characters, e.g.<br>CHK*<br>*STD<br>or regular expressions for more complex pattern matching (see help for more information)<br>^CHK.*STD$ | Textarea |  |
  > | Derivation exclusions | List of Derivations to exclude, one per line.<br>Use wildcards to exclude Derivation Names starting or ending with characters, e.g.<br>Z*<br>*STD<br>or regular expressions for more complex pattern matching (see help for more information)<br>^Z.*STD$ | Textarea |  |

- **ID:** 0080

  **Name:** Medical Coded Fields may not have Data or Unit Dictionaries or Lab Analytes associated with them

  **Description:** Fields which will be Coded cannot have values which come from Dictionaries or Labs. This Diagnostic checks only the information from the Fields tab of the Architect Loader Spreadsheet (ALS). It does not look at data from the CoderConfiguration, CoderSupplementalTerms or CoderComponentTerms tabs of the ALS. See Diagnostic 0057 for checks on that data.

  > | Name | Description | Setting Type | Default Value |
  > | --- | --- | --- | --- |
  > | Ignore Inactive | Ignore Inactive Fields and Fields on Inactive Forms. | Boolean | True |
  > | Field OID Exclusions | List of Field OIDs to exclude, one per line.<br>Use wildcards to exclude Field OIDs starting or ending with characters, e.g.<br>FLD*<br>*DAT<br>or regular expressions for more complex pattern matching (see help for more information)<br>^FLD.*DAT$ | Textarea |  |

- **ID:** 0081

  **Name:** Check text strings for trailing whitespace

  **Description:** Whitespace (spaces, tabs t, carriage returns r, line-feeds r and printer form-feeds f) at the end of text strings are generally unwanted and can affect the display of questions and other output in PDFs Note that fix will remove whitespace characters at the end of the text.

  > | Name | Description | Setting Type | Default Value |
  > | --- | --- | --- | --- |
  > | Properties | Properties to include in the diagnostic | Property | Drafts\|Confirmation Message Drafts\|Signature Prompt Folders\|Name Matrices\|Matrix Name Forms\|Name Fields\|Pre Text Fields\|Header Text Fields\|Number Data Dictionaries\|Name Dictionary Entries\|User Data String Unit Dictionaries\|Name Unit Dictionary Entries\|Unit String Check Steps\|Static Value Check Actions\|Action String Email Alerts\|Body Email Alerts\|Subject Custom Functions\|Function Name |

- **ID:** 0082

  **Name:** Medical Coded Fields must have a text format

  **Description:** Fields which will be Coded must have a text ($) format. See also Diagnostic 0057 for checks on Coder related Fields.

  > | Name | Description | Setting Type | Default Value |
  > | --- | --- | --- | --- |
  > | Field OID Exclusions | List of Field OIDs to exclude, one per line.<br>Use wildcards to exclude Field OIDs starting or ending with characters, e.g.<br>FLD*<br>*DAT<br>or regular expressions for more complex pattern matching (see help for more information)<br>^FLD.*DAT$ | Textarea |  |

- **ID:** 0085

  **Name:** Check Appropriateness of Form-level SignatureRequired = No setting

  **Description:** Checks the appropriateness of Signature Required setting for Forms where Signature Required=No (unchecked) but at least one Field Participates in Signature (at least one Field has DoesNotParticipateInSignature unchecked). Where Form Signature Required=No but there are fields which Participate In Signature then the Fields may not be able to be locked because they have not been signed.

  > | Name | Description | Setting Type | Default Value |
  > | --- | --- | --- | --- |
  > | Form OID Exclusions | List of Form OIDs to exclude, one per line.<br>Use wildcards to exclude Form OIDs starting or ending with characters, e.g.<br>FORM*<br>*DAT<br>or regular expressions for more complex pattern matching (see help for more information)<br>^FORM.*DAT$ | Textarea |  |
  > | Field OID Exclusions | List of Field OIDs to exclude, one per line.<br>Use wildcards to exclude Field OIDs starting or ending with characters, e.g.<br>FLD*<br>*DAT<br>or regular expressions for more complex pattern matching (see help for more information)<br>^FLD.*DAT$ | Textarea |  |

- **ID:** 0086

  **Name:** Static Value Check Step Length

  **Description:** Checks that Static Values in Check Steps have appropriate length set. e.g. a value of "MALE" with a format of $2 is compared as "MA". Only $ format Static Values are checked by this Diagnostic. Fix will set the format for the Static Value to ${length of value}

  > | Name | Description | Setting Type | Default Value |
  > | --- | --- | --- | --- |
  > | Report values under Format size? | Report Steps like Y ($10) where the value is under the format size? | Boolean | False |
  > | Ignore Inactive | Ignore Inactive Checks and Derivations. When set Inactive Checks and Derivations will be excluded from results. | Boolean | True |

- **ID:** 0087

  **Name:** Check Appropriateness of Form-level SignatureRequired = Yes setting

  **Description:** Checks the appropriateness of Signature Required setting for Forms where Signature Required=Yes (checked) but no Fields Participate in Signature (all Fields have DoesNotParticipateInSignature unchecked). Where Form Signature Required=Yes but there are no fields which Participate In Signature then there is nothing to sign.

  > | Name | Description | Setting Type | Default Value |
  > | --- | --- | --- | --- |
  > | Ignore Inactive | Ignore Inactive Fields and Fields on Inactive Forms. | Boolean | True |
  > | Form OID Exclusions | List of Form OIDs to exclude, one per line.<br>Use wildcards to exclude Form OIDs starting or ending with characters, e.g.<br>FORM*<br>*DAT<br>or regular expressions for more complex pattern matching (see help for more information)<br>^FORM.*DAT$ | Textarea |  |
  > | Field OID Exclusions | List of Field OIDs to exclude, one per line.<br>Use wildcards to exclude Field OIDs starting or ending with characters, e.g.<br>FLD*<br>*DAT<br>or regular expressions for more complex pattern matching (see help for more information)<br>^FLD.*DAT$ | Textarea |  |

- **ID:** 0088

  **Name:** Data entry Fields should Participate in Signature

  **Description:** Checks that Fields entered by data entry users participate in Signature. A Field is considered a data entry field if: \* it is not a Derived Field \* AND it is not View Restricted to ALL of the data entry roles (i.e. all these users can see the data) \* AND it is not Entry Restricted to ALL of the data entry roles (i.e. all these users can enter the data) Fix will set this field DoesNotParticipatesInSignature=False (i.e. Does participate in signature)

  > | Name | Description | Setting Type | Default Value |
  > | --- | --- | --- | --- |
  > | View Restriction Role Names | Field is a Data Entry field if it is not View Restricted to ALL of these Roles | EDCRole |  |
  > | Entry Restriction Role Names | Field is a Data Entry field if it is not Entry Restricted to ALL of these Roles | EDCRole |  |
  > | Form OID Exclusions | List of Form OIDs to exclude, one per line.<br>Use wildcards to exclude Form OIDs starting or ending with characters, e.g.<br>FORM*<br>*DAT<br>or regular expressions for more complex pattern matching (see help for more information)<br>^FORM.*DAT$ | Textarea |  |
  > | Field OID Exclusions | List of Field OIDs to exclude, one per line.<br>Use wildcards to exclude Field OIDs starting or ending with characters, e.g.<br>FLD*<br>*DAT<br>or regular expressions for more complex pattern matching (see help for more information)<br>^FLD.*DAT$ | Textarea |  |
  > | Ignore Inactive | Ignore Inactive Forms | Boolean | False |
  > | Log fields with Default Value ending with \| are not data entry fields | Select this option when you want to consider Log Fields with default values ending in \| as non-data entry fields because no further data can be entered | Boolean | False |
  > | Fields with Default values are not data entry fields | Select this option when you want to consider ANY field with a Default value as non-data entry (should not be entered by sites) | Boolean | False |

- **ID:** 0089

  **Name:** Data entry Fields should Require Source Document Verification

  **Description:** Checks that Fields entered by data entry users require Source Document Verification. A Field is considered a data entry field if: \* it is not a Derived Field \* AND it is not View Restricted to ALL of the data entry roles (i.e. all these users can see the data) \* AND it is not Entry Restricted to ALL of the data entry roles (i.e. all these users can enter the data) Fix will set this field Requires Source Document Verification=True

  > | Name | Description | Setting Type | Default Value |
  > | --- | --- | --- | --- |
  > | View Restriction Role Names | Field is a Data Entry field if it is not View Restricted to ALL of these Roles | EDCRole |  |
  > | Entry Restriction Role Names | Field is a Data Entry field if it is not Entry Restricted to ALL of these Roles | EDCRole |  |
  > | Form OID Exclusions | List of Form OIDs to exclude, one per line.<br>Use wildcards to exclude Form OIDs starting or ending with characters, e.g.<br>FORM*<br>*DAT<br>or regular expressions for more complex pattern matching (see help for more information)<br>^FORM.*DAT$ | Textarea |  |
  > | Field OID Exclusions | List of Field OIDs to exclude, one per line.<br>Use wildcards to exclude Field OIDs starting or ending with characters, e.g.<br>FLD*<br>*DAT<br>or regular expressions for more complex pattern matching (see help for more information)<br>^FLD.*DAT$ | Textarea |  |
  > | Ignore Inactive | Ignore Inactive Forms | Boolean | False |
  > | Log fields with Default Value ending with \| are not data entry fields | Select this option when you want to consider Log Fields with default values ending in \| as non-data entry fields because no further data can be entered | Boolean | False |
  > | Fields with Default values are not data entry fields | Select this option when you want to consider ANY field with a Default value as non-data entry (should not be entered by sites) | Boolean | False |

- **ID:** 0090

  **Name:** Data entry Fields should be Visible

  **Description:** Checks that Fields entered by data entry users are Visible. A Field is considered a data entry field if: \* it is not a Derived Field \* AND it is not View Restricted to ALL of the data entry roles (i.e. all these users can see the data) \* AND it is not Entry Restricted to ALL of the data entry roles (i.e. all these users can enter the data) Fix will set this field Visible=True

  > | Name | Description | Setting Type | Default Value |
  > | --- | --- | --- | --- |
  > | View Restriction Role Names | Field is a Data Entry field if it is not View Restricted to ALL of these Roles | EDCRole |  |
  > | Entry Restriction Role Names | Field is a Data Entry field if it is not Entry Restricted to ALL of these Roles | EDCRole |  |
  > | Form OID Exclusions | List of Form OIDs to exclude, one per line.<br>Use wildcards to exclude Form OIDs starting or ending with characters, e.g.<br>FORM*<br>*DAT<br>or regular expressions for more complex pattern matching (see help for more information)<br>^FORM.*DAT$ | Textarea |  |
  > | Field OID Exclusions | List of Field OIDs to exclude, one per line.<br>Use wildcards to exclude Field OIDs starting or ending with characters, e.g.<br>FLD*<br>*DAT<br>or regular expressions for more complex pattern matching (see help for more information)<br>^FLD.*DAT$ | Textarea |  |
  > | Ignore Inactive | Ignore Inactive Forms | Boolean | False |
  > | Log fields with Default Value ending with \| are not data entry fields | Select this option when you want to consider Log Fields with default values ending in \| as non-data entry fields because no further data can be entered | Boolean | False |
  > | Fields with Default values are not data entry fields | Select this option when you want to consider ANY field with a Default value as non-data entry (should not be entered by sites) | Boolean | False |

- **ID:** 0091

  **Name:** Non-Data entry Fields should not Participate in Signature

  **Description:** Checks that Fields which cannot be entered by data entry users do not participate in signature. A Field should not break or require signature if it cannot be seen or entered by a data-entry user. A Field is considered a non-data entry field if: \* it is a Derived Field \* OR it is View Restricted to ALL of the data entry roles (i.e. none of these users can see the data) \* OR it is Entry Restricted to ALL of the data entry roles (i.e. nobody can enter the data) Fix will set this field DoesNotParticipatesInSignature=True (i.e. Does not participate in signature)

  > | Name | Description | Setting Type | Default Value |
  > | --- | --- | --- | --- |
  > | View Restriction Role Names | Field is a non-Data Entry field if it is View Restricted to ALL of these Roles | EDCRole |  |
  > | Entry Restriction Role Names | Field is a non-Data Entry field if it is Entry Restricted to ALL of these Roles | EDCRole |  |
  > | Form OID Exclusions | List of Form OIDs to exclude, one per line.<br>Use wildcards to exclude Form OIDs starting or ending with characters, e.g.<br>FORM*<br>*DAT<br>or regular expressions for more complex pattern matching (see help for more information)<br>^FORM.*DAT$ | Textarea |  |
  > | Field OID Exclusions | List of Field OIDs to exclude, one per line.<br>Use wildcards to exclude Field OIDs starting or ending with characters, e.g.<br>FLD*<br>*DAT<br>or regular expressions for more complex pattern matching (see help for more information)<br>^FLD.*DAT$ | Textarea |  |
  > | Ignore Inactive | Ignore Inactive Forms | Boolean | False |
  > | Log fields with Default Value ending with \| are not data entry fields | Select this option when you want to consider Log Fields with default values ending in \| as non-data entry fields because no further data can be entered | Boolean | False |
  > | Fields with Default values are not data entry fields | Select this option when you want to consider ANY field with a Default value as non-data entry (should not be entered by sites) | Boolean | False |

- **ID:** 0092

  **Name:** Non-Data entry Fields should not Require Source Document Verification

  **Description:** Checks that Fields which cannot be entered by data entry users do not need to be Verified. A Field should not require Source Document verification if it cannot be seen or entered by any data-entry user. A Field is considered a non-data entry field if: \* it is a Derived Field \* OR it is View Restricted to ALL of the data entry roles (i.e. none of these users can see the data) \* OR it is Entry Restricted to ALL of the data entry roles (i.e. none of these users can enter the data) Fix will set this field Requires Source Document Verification=False (i.e. Does not require Source Document Verification)

  > | Name | Description | Setting Type | Default Value |
  > | --- | --- | --- | --- |
  > | View Restriction Role Names | Field is a non-Data Entry field if it is View Restricted to ALL of these Roles | EDCRole |  |
  > | Entry Restriction Role Names | Field is a non-Data Entry field if it is Entry Restricted to ALL of these Roles | EDCRole |  |
  > | Form OID Exclusions | List of Form OIDs to exclude, one per line.<br>Use wildcards to exclude Form OIDs starting or ending with characters, e.g.<br>FORM*<br>*DAT<br>or regular expressions for more complex pattern matching (see help for more information)<br>^FORM.*DAT$ | Textarea |  |
  > | Field OID Exclusions | List of Field OIDs to exclude, one per line.<br>Use wildcards to exclude Field OIDs starting or ending with characters, e.g.<br>FLD*<br>*DAT<br>or regular expressions for more complex pattern matching (see help for more information)<br>^FLD.*DAT$ | Textarea |  |
  > | Ignore Inactive | Ignore Inactive Forms | Boolean | False |
  > | Log fields with Default Value ending with \| are not data entry fields | Select this option when you want to consider Log Fields with default values ending in \| as non-data entry fields because no further data can be entered | Boolean | False |
  > | Fields with Default values are not data entry fields | Select this option when you want to consider ANY field with a Default value as non-data entry (should not be entered by sites) | Boolean | False |

- **ID:** 0093

  **Name:** Non-Data entry Fields should not be Required

  **Description:** Checks that Fields which cannot be entered by data entry users are not Required. A Field should not be Required if it cannot be seen or entered by any data-entry user. A Field is considered a non-data entry field if: \* it is a Derived Field \* OR it is View Restricted to ALL of the data entry roles (i.e. none of these users can see the data) \* OR it is Entry Restricted to ALL of the data entry roles (i.e. none of these users can enter the data) Fix will set this field Required=False (i.e. is not Required)

  > | Name | Description | Setting Type | Default Value |
  > | --- | --- | --- | --- |
  > | View Restriction Role Names | Field is a non-Data Entry field if it is View Restricted to ALL of these Roles | EDCRole |  |
  > | Entry Restriction Role Names | Field is a non-Data Entry field if it is Entry Restricted to ALL of these Roles | EDCRole |  |
  > | Form OID Exclusions | List of Form OIDs to exclude, one per line.<br>Use wildcards to exclude Form OIDs starting or ending with characters, e.g.<br>FORM*<br>*DAT<br>or regular expressions for more complex pattern matching (see help for more information)<br>^FORM.*DAT$ | Textarea |  |
  > | Field OID Exclusions | List of Field OIDs to exclude, one per line.<br>Use wildcards to exclude Field OIDs starting or ending with characters, e.g.<br>FLD*<br>*DAT<br>or regular expressions for more complex pattern matching (see help for more information)<br>^FLD.*DAT$ | Textarea |  |
  > | Ignore Inactive | Ignore Inactive Forms | Boolean | False |
  > | Log fields with Default Value ending with \| are not data entry fields | Select this option when you want to consider Log Fields with default values ending in \| as non-data entry fields because no further data can be entered | Boolean | False |
  > | Fields with Default values are not data entry fields | Select this option when you want to consider ANY field with a Default value as non-data entry (should not be entered by sites) | Boolean | False |

- **ID:** 0094

  **Name:** Non-Data entry Fields should not have Edit Check Query Actions

  **Description:** Checks that Fields which cannot be entered by data entry users should not have Edit Check queries raised on them since the data entry users will not be able to change data values in response. A Field is considered a non-data entry field if: \* it is a Derived Field \* OR it is View Restricted to ALL of the data entry roles (i.e. none of these users can see the data) \* OR it is Entry Restricted to ALL of the data entry roles (i.e. none of these users can enter the data)

  > | Name | Description | Setting Type | Default Value |
  > | --- | --- | --- | --- |
  > | View Restriction Role Names | Field is a non-Data Entry field if it is View Restricted to ALL of these Roles | EDCRole |  |
  > | Entry Restriction Role Names | Field is a non-Data Entry field if it is Entry Restricted to ALL of these Roles | EDCRole |  |
  > | Form OID Exclusions | List of Form OIDs to exclude, one per line.<br>Use wildcards to exclude Form OIDs starting or ending with characters, e.g.<br>FORM*<br>*DAT<br>or regular expressions for more complex pattern matching (see help for more information)<br>^FORM.*DAT$ | Textarea |  |
  > | Field OID Exclusions | List of Field OIDs to exclude, one per line.<br>Use wildcards to exclude Field OIDs starting or ending with characters, e.g.<br>FLD*<br>*DAT<br>or regular expressions for more complex pattern matching (see help for more information)<br>^FLD.*DAT$ | Textarea |  |
  > | Ignore Inactive | Ignore Inactive Forms | Boolean | False |
  > | Log fields with Default Value ending with \| are not data entry fields | Select this option when you want to consider Log Fields with default values ending in \| as non-data entry fields because no further data can be entered | Boolean | False |
  > | Fields with Default values are not data entry fields | Select this option when you want to consider ANY field with a Default value as non-data entry (should not be entered by sites) | Boolean | False |

- **ID:** 0095

  **Name:** Lab Analyte names should be unique within a form

  **Description:** Lab Anaylte names should be unique within a Form, there should not be more than one Field on a Form with the same Analyte name.

- **ID:** 0099

  **Name:** Repeat Numbers in Check Steps and Actions with no OID

  **Description:** Rave allows Check Steps, Check Actions and Derivation Steps to have a Folder or Form repeat number but without entering a Folder or Form OID. Setting up a Step or Action this way may be a mistake of the editing process and not intended. This Diagnostic finds Check Steps and Actions with Folder or Form repeats and missing identifier OIDs.

- **ID:** 0101

  **Name:** Static values in Check and Derivation Steps should be valid

  **Description:** Rave does not perform checks on Static Values entered in Check and Derivation steps. This Diagnostic checks Static Value formats and values for correctness.

  > | Name | Description | Setting Type | Default Value |
  > | --- | --- | --- | --- |
  > | Ignore Inactive | Ignore Inactive Checks and Derivations. When set Inactive Checks and Derivations will be excluded from results. | Boolean | True |

- **ID:** 0102

  **Name:** Check that URLs in text strings are valid

  **Description:** Finds URLs in text strings and checks if the URLs can be reached, i.e. that the URL address is correct

  > | Name | Description | Setting Type | Default Value |
  > | --- | --- | --- | --- |
  > | Ignore URLs which requre authorization | Some URLs might require authorization (ie. entry of a username or password) to view the contents. | Boolean | True |
  > | URLs to Exclude | List of URLs to exclude, one per line.<br>Use wildcards to exclude URLs starting or ending with characters, e.g.<br>[https://creativecommons.org*](https://creativecommons.org*)<br>or regular expressions for more complex pattern matching (see help for more information)<br>.*trialgrid.*io$ | Textarea |  |

- **ID:** 0103

  **Name:** Default value of =NOW should only be used with Date/Time fields

  **Description:** Checking the "Use Current Date Time" checkbox sets the default value for the field to =NOW. Setting this value for any field type other than date/time types will cause Subject PDF generation to fail. This Diagnostic ignores Inactive Fields and Fields on Inactive Forms. Fix will remove this default value.

- **ID:** 0104

  **Name:** Verify Form Help Text matches link to help resource

  **Description:** Form help text that starts with %% (two percent signs) is treated by Rave as a hyperlink to a help resource document. Instead of opening a pop-up page with this help content, Rave navigates the current page to this help web page or resource (e.g. a PDF document). Resources may be hosted as part of the Rave URL by arrangement with Medidata or on any other accessible web server. If you use hosted help resources, this diagnostic will check that Form help is set to reference this global resource.

  > | Name | Description | Setting Type | Default Value |
  > | --- | --- | --- | --- |
  > | Help Resources | The path to the resource that the HelpText must match. Use {OID} to match the Form OID e.g.<br>%%MedidataRave/Help/Content/{OID}.pdf<br>This will match content such as %%MedidataRave/Help/Content/DEMOG.pdf if the Form OID is DEMOG.<br>Use wildcard * to match resources ending with characters, e.g.<br>%%MedidataRave/Help/Content/*<br>This will match content such as %%MedidataRave/Help/Content/Guideline1.pdf and %%MedidataRave/Help/Content/SubFolder/Instuctions.html<br>Or use regular expression starting with ^ and ending with $ to match a pattern e.g.<br>^.*MedidataRave/Help/Modules/Helpfile/.*$<br>This will match content such as [https://example.mdsol.com/MedidataRave/Help/Modules/Helpfile/Guidelines.pdf](https://example.mdsol.com/MedidataRave/Help/Modules/Helpfile/Guidelines.pdf) and %%MedidataRave/Help/Modules/Helpfile/Guide.pdf | Textarea | %%path/to/resource.pdf |
  > | All Forms | When checked this option enforces that all Forms must have HelpText which matches the Help resource pattern.<br>If unchecked then this pattern is enforced only for Form Help which starts with the resource identifier %% | Boolean | True |
  > | Ignore Inactive | Ignore Inactive Forms | Boolean | True |
  > | Form OID Exclusions | List of Form OIDs to exclude, one per line.<br>Use wildcards to exclude Form OIDs starting or ending with characters, e.g.<br>FORM*<br>*DAT<br>or regular expressions for more complex pattern matching (see help for more information)<br>^FORM.*DAT$ | Textarea |  |

- **ID:** 0105

  **Name:** Verify Form is not set for Double Data Entry (DDE)

  **Description:** The Double Data Entry (DDE) features of Medidata Rave are not frequently used and some organizations never use these features. This diagnostic identifies Forms where DDE is not set to "Never". The fix will change the Form DDE setting to "Never".

  > | Name | Description | Setting Type | Default Value |
  > | --- | --- | --- | --- |
  > | Ignore Inactive | Ignore Inactive Forms | Boolean | True |
  > | Form OID Exclusions | List of Form OIDs to exclude, one per line.<br>Use wildcards to exclude Form OIDs starting or ending with characters, e.g.<br>FORM*<br>*DAT<br>or regular expressions for more complex pattern matching (see help for more information)<br>^FORM.*DAT$ | Textarea |  |

- **ID:** 0106

  **Name:** IsTemplate is set to False for all Forms

  **Description:** If you do not wish to use Template Forms in your study this Diagnostic can be used to enforce that Forms are not set to be Template Forms.

  > | Name | Description | Setting Type | Default Value |
  > | --- | --- | --- | --- |
  > | Ignore Inactive | Ignore Inactive Forms | Boolean | True |
  > | Form OID Exclusions | List of Form OIDs to exclude, one per line.<br>Use wildcards to exclude Form OIDs starting or ending with characters, e.g.<br>FORM*<br>*DAT<br>or regular expressions for more complex pattern matching (see help for more information)<br>^FORM.*DAT$ | Textarea |  |

- **ID:** 0107

  **Name:** Verify that a Matrix designed to contain all forms does contain all Forms.

  **Description:** An All Forms Matrix is often used in conjunction with the Medidata Rave PDF generator to create PDFs of Forms for review. All Forms are listed as part of the SUBJECT folder. As new Forms are added to the study this Matrix must be updated. This Diagnostic checks that the identified all forms Matrix contains all Forms defined in the draft in the SUBJECT Folder. The Fix will add missing Forms.

  > | Name | Description | Setting Type | Default Value |
  > | --- | --- | --- | --- |
  > | All Forms Matrix OID | OID of the All Forms Matrix. Matching ignores upper and lower case.<br>Use a wildcard to check every Matrix whose OID starts or ends with the characters given, for example UNIQUE* or *_ALL. Each matching Matrix is checked separately. A wildcard on its own is not accepted, because it would select every Matrix in the Draft. | Text |  |
  > | Ignore Inactive | Ignore Inactive Forms | Boolean | True |
  > | Form OID Exclusions | List of Form OIDs to exclude, one per line.<br>Use wildcards to exclude Form OIDs starting or ending with characters, e.g.<br>FORM*<br>*DAT<br>or regular expressions for more complex pattern matching (see help for more information)<br>^FORM.*DAT$ | Textarea |  |

- **ID:** 0108

  **Name:** Verify that PDF/All Visits Matrix is a superset of all other Matrices

  **Description:** A PDF/All Visits Matrix is often used to show the complete set of Folder/Form combinations possible in a study. This Diagnostic checks that the named Matrix contains all Folder/Forms from the other Matrices in the study. The Fix will add missing Forms / Folder combinations and will remove Folder / Form combinations which do not exist in other Matrices.

  > | Name | Description | Setting Type | Default Value |
  > | --- | --- | --- | --- |
  > | All Visits / PDF Matrix OID | OID of the All Visits Matrix which is a superset of all other Matrices. Matching ignores upper and lower case.<br>Use a wildcard to check every Matrix whose OID starts or ends with the characters given, for example CRF* or *_PDF. Each matching Matrix is checked separately, and none of them is treated as part of the set they are compared against. A wildcard on its own is not accepted, and at least one Matrix has to be left to compare against once the exclusions have been applied. | Text |  |
  > | Matrix_Exclusions | List of Matrices to exclude, one per line.<br>Use wildcards to exclude Matrix OIDs starting or ending with characters, e.g.<br>*MAT<br>*DAT<br>or regular expressions for more complex pattern matching (see help for more information)<br>^MAT.*DAT$ | Textarea |  |
  > | Form OID Exclusions | List of Form OIDs to exclude, one per line.<br>Use wildcards to exclude Form OIDs starting or ending with characters, e.g.<br>FORM*<br>*DAT<br>or regular expressions for more complex pattern matching (see help for more information)<br>^FORM.*DAT$ | Textarea |  |
  > | Ignore Addform Actions | When checked, any additional folder/form combinations that exist only in the PDF/All Visits matrix will not be reported as extra if an Active Edit Check AddForm action adds that exact folder/form combination or a wildcard Any Folder/Form AddForm combination exists. | Boolean | False |

- **ID:** 0124

  **Name:** Checkbox Fields should not have Default Values

  **Description:** If a Checkbox Field has a Default Value then pdf generation will fail. Fix will remove the Default Value.

  > | Name | Description | Setting Type | Default Value |
  > | --- | --- | --- | --- |
  > | Ignore Inactive | Ignore Inactive Fields and Fields on Inactive Forms. | Boolean | True |
  > | Field OID Exclusions | List of Field OIDs to exclude, one per line.<br>Use wildcards to exclude Field OIDs starting or ending with characters, e.g.<br>FLD*<br>*DAT<br>or regular expressions for more complex pattern matching (see help for more information)<br>^FLD.*DAT$ | Textarea |  |

- **ID:** 0125

  **Name:** Edit Check Open Query Actions which Require Response must also have Require Manual Close

  **Description:** When an Edit Check Open Query Action is set to Require Response it must also have Required Manual Close set. Fix will set Require Manual Close = True. This Diagnostic ignores inactive and invalid Edit Checks.

- **ID:** 0126

  **Name:** Edit Check Open Query Actions must have Require Response and Require Manual Close set to True

  **Description:** Use this Diagnostic if your organization has a standard of requiring both Response and Manual Close of Queries. This Diagnostic ignores inactive and invalid Edit Checks. Fix will set Open Query Check Action to RequiresResponse and Requires Manual Close

  > | Name | Description | Setting Type | Default Value |
  > | --- | --- | --- | --- |
  > | Check_Exclusions | List of Checks to exclude, one per line.<br>Use wildcards to exclude Check Names starting or ending with characters, e.g.<br>CHK*<br>*STD<br>or regular expressions for more complex pattern matching (see help for more information)<br>^CHK.*STD$ | Textarea |  |

- **ID:** 0129

  **Name:** Find Fields which are enterable by Site Users and do not have a missing data check

  **Description:** Checks Draft for Fields which can be entered by Site users and which do not have a Field level Required check or an Edit Check which opens a Query and has an 'IsEmpty' check step on the Field. The fix will set the Field level Required property. Derived Fields, Label Fields, Checkbox Fields, inactive Fields, Fields on inactive Forms and Fields with a Data Dictionary with 0 or 1 values are not included.

  > | Name | Description | Setting Type | Default Value |
  > | --- | --- | --- | --- |
  > | Field OID Exclusions | List of Field OIDs to exclude, one per line.<br>Use wildcards to exclude Field OIDs starting or ending with characters, e.g.<br>FLD*<br>*DAT<br>or regular expressions for more complex pattern matching (see help for more information)<br>^FLD.*DAT$ | Textarea |  |
  > | Role Names | List of EDC Roles which are site users. | EDCRole |  |

- **ID:** 0142

  **Name:** Pipe delimiters should not appear in non-log default values

  **Description:** Pipe delimiters in standard fields may prevent data being saved to the form after a migration.

  > | Name | Description | Setting Type | Default Value |
  > | --- | --- | --- | --- |
  > | Ignore Inactive | Ignore Inactive Fields and Fields on Inactive Forms. | Boolean | True |

- **ID:** 0164

  **Name:** Ensure that log fields with default values have the full list of values from the data dictionary

  **Description:** Designed to be used where you have a Log Field that has default values set to all the entries of a Data Dictionary in Entry Ordinal order with a closing \| to prevent further entries. Typically used for Inclusion/Exclusion criteria or lab tests where log lines are used to record both the data and the question identifier from the Data Dictionary.

  > | Name | Description | Setting Type | Default Value |
  > | --- | --- | --- | --- |
  > | Form Fields | A list of FORM_OID.FIELD_OID references, one per line. Each field has its default values checked against the values from its Data Dictionary. | Textarea |  |
  > | Continue on error? | When set, an invalid entry in the list of form/fields (e.g. field not found, field not a log field etc) does not stop the diagnostic, it continues without reporting the configuration error. Useful when you have standard form/field combinations that do not exist in every study. | Boolean | False |
  > | Accept Duplicates | When enabled, duplicate values are allowed in the default value as long as all dictionary entries are present. When disabled (default), the default value must exactly match the dictionary entries in order with no duplicates. | Boolean | False |

- **ID:** 0165

  **Name:** Check text strings for unbalanced quotes

  **Description:** Finds unbalanced quotation marks in text strings, excluding contractions, e.g. subject's. Double-quote marks will be higlighted in yellow. Single quote marks will be highlighted in blue. Other unicode quote marks (smart quotes, etc) will be highlighted in red, and are not included in working out whether quotation marks are balanced.

  > | Name | Description | Setting Type | Default Value |
  > | --- | --- | --- | --- |
  > | Properties | Properties to include in the diagnostic | Property | Drafts\|Confirmation Message Drafts\|Signature Prompt Fields\|Pre Text Fields\|Header Text Dictionary Entries\|User Data String Check Actions\|Action String Email Alerts\|Body |

- **ID:** 0166

  **Name:** Find Edit Check query actions which do not use the standard Marking Group

  **Description:** Finds Edit Check query actions which use a Marking Group different from the standard Marking Group specified in the diagnostic configuration. Autofix will set the marking group to the standard one.

  > | Name | Description | Setting Type | Default Value |
  > | --- | --- | --- | --- |
  > | Marking_Group | The marking group(s) which should normally be used in Edit Check query actions | MarkingGroup | Site from System |
  > | Ignore Inactive | Ignore Inactive Checks. When set Inactive Checks will be excluded from results. | Boolean | True |
  > | Check_Exclusions | List of Checks to exclude, one per line.<br>Use wildcards to exclude Check Names starting or ending with characters, e.g.<br>CHK*<br>*STD<br>or regular expressions for more complex pattern matching (see help for more information)<br>^CHK.*STD$ | Textarea |  |

- **ID:** 0167

  **Name:** Find Log Forms which have Lab Analyte Fields

  **Description:** Log Forms which have Lab Analyte Fields can cause slow performance in Rave because the lab range calculation will be repeated for each log record.

  > | Name | Description | Setting Type | Default Value |
  > | --- | --- | --- | --- |
  > | Form OID Exclusions | List of Form OIDs to exclude, one per line.<br>Use wildcards to exclude Form OIDs starting or ending with characters, e.g.<br>FORM*<br>*DAT<br>or regular expressions for more complex pattern matching (see help for more information)<br>^FORM.*DAT$ | Textarea |  |
  > | Ignore Inactive | Ignore Inactive Fields and Fields on Inactive Forms. | Boolean | True |

- **ID:** 0178

  **Name:** Observation Date Settings (Rave 2025.2.0)

  **Description:** Checks that Observation Date settings for fields comply with Rave 2025.2.0 requirements: standard form fields can only select 'Set DataPage Date' (Observation Date of Form) and log form fields can only select 'Set Record Date' (Observation Date of Log/Form). These options are mutually exclusive.

  > | Name | Description | Setting Type | Default Value |
  > | --- | --- | --- | --- |
  > | Ignore Inactive | Ignore Inactive Forms and Fields | Boolean | True |

- **ID:** 0180

  **Name:** Item Name and External ID Reserved Words

  **Description:** Checks Veeva Item definitions for Item Name and External ID properties that match reserved words used by standard Veeva EDC objects and fields. Lab-specific reserved word prefixes (LBLOC, LBAGE, LBSEX, LBFEMALECYCLE, LBDTC) are only checked when "Enable Local Labs" is not set to "Yes" in Study Settings, since Veeva auto-creates Items with these prefixes when local labs are enabled.

  > | Name | Description | Setting Type | Default Value |
  > | --- | --- | --- | --- |
  > | Item Name Exclusions | List of Item Names to exclude, one per line.<br>Use wildcards to exclude Item Names starting or ending with characters, e.g.<br>ITEM*<br>*TEST<br>or regular expressions for more complex pattern matching (see help for more information)<br>^ITEM.*TEST$ | Textarea |  |

- **ID:** 0201

  **Name:** Custom Functions should only call Custom Functions that are in the Draft

  **Description:** A Custom Function that calls another which is not in the Draft compiles, but fails when the call runs. This Diagnostic reports calls, in the V1 or V2 API, to a name that no Custom Function in the Draft has, ignoring case. It only checks calls into the calling function's own CRF version; a call whose CRF version is a variable or a number may be meant for another version, such as a global library, and is not reported. Nor is a call whose name is worked out when the code runs.

  > | Name | Description | Setting Type | Default Value |
  > | --- | --- | --- | --- |
  > | Custom_Function_Exclusions | List of Custom Functions to exclude, one per line.<br>Use wildcards to exclude Function Names starting or ending with characters, e.g.<br>CF*<br>*STD<br>or regular expressions for more complex pattern matching (see help for more information)<br>^CF.*STD$ | Textarea |  |
  > | Called Function Exclusions | List of called Custom Function names to ignore, one per line, for functions called in another CRF version such as a global library.<br>Use wildcards to ignore names starting or ending with characters, e.g.<br>GCF_*<br>*_Library | Textarea |  |

- **ID:** V020

  **Name:** Check text strings for possible spelling mistakes

  **Description:** Compares all text in the Draft against a list of more than 4,000 commonly misspelled US English words and a comprehensive US-language dictionary including medical terms. Misspellings are highlighted and correct spelling suggested. Note that this function uses a Large Language Model (AI) which has usage limits. No data from this spellcheck is shared with any 3rd party or used for AI training data.

  > | Name | Description | Setting Type | Default Value |
  > | --- | --- | --- | --- |
  > | Properties to include | Properties of type Text to include in the diagnostic | Property | Codelist Entries\|Choice Label Forms\|Form Label Items\|Label |
  > | Exclusions | List of Words to exclude, one per line.<br>Use wildcards to exclude Words starting or ending with characters, e.g.<br>FLD*<br>*DAT<br>or regular expressions for more complex pattern matching (see help for more information)<br>^FLD.*DAT$ | Textarea |  |
  > | Ignore acronyms of length equal or longer than | Set this value to ignore acronyms (all CAPS words) of length greater than or equal to the cutoff value. e.g. 6 would ignore RECIST. | Text | 100 |

- **ID:** V070

  **Name:** Check text strings for non-ASCII characters

  **Description:** Checks the draft for instances of non-ASCII characters which may render poorly in PDF copies of CRFs.

  > | Name | Description | Setting Type | Default Value |
  > | --- | --- | --- | --- |
  > | Properties | Properties to include in the diagnostic | Property | Codelist Entries\|Choice Label Forms\|Form Label Items\|Label |
  > | Exclusions | List of Characters or character codes to exclude/ignore, separated by commas. Some useful defaults for common characters: •,“,”,–,²,’,´,‘,µ,α,º,160 (160 is non-breaking space code) | Textarea |  |

- **ID:** V081

  **Name:** Check text strings for trailing whitespace

  **Description:** Whitespace (spaces, tabs t, carriage returns r, line-feeds r and printer form-feeds f) at the end of text strings are generally unwanted and can affect the display of questions and other output in PDFs Note that fix will remove whitespace characters at the end of the text.

  > | Name | Description | Setting Type | Default Value |
  > | --- | --- | --- | --- |
  > | Properties | Properties to include in the diagnostic | Property | Codelist Entries\|Choice Label Forms\|Form Label Items\|Label |

<a id="rave-edc-ravex"></a>
## Rave EDC (RaveX)

TrialGrid recommends running on studies and libraries which will be used with Rave EDC (RaveX), and as a Diagnostic to assess the impact of upgrading existing studies and libraries

- **ID:** 0059

  **Name:** Custom Functions used in Rave EDC (RaveX) should not use blacklisted methods

  **Description:** Blacklisted methods, and the methods Rave 2025.2.0 removed or replaced, will not work in future versions of Rave, including Rave EDC (RaveX). Each finding lists the lines that use them and, for the Rave 2025.2.0 removals, what to use instead. Code in comments and text inside strings are ignored.

  > | Name | Description | Setting Type | Default Value |
  > | --- | --- | --- | --- |
  > | Custom_Function_Exclusions | List of Custom Functions to exclude, one per line.<br>Use wildcards to exclude Function Names starting or ending with characters, e.g.<br>CF*<br>*STD<br>or regular expressions for more complex pattern matching (see help for more information)<br>^CF.*STD$ | Textarea |  |

- **ID:** 0060

  **Name:** IsPresent Check Action

  **Description:** Rave 2016.4 introduced the IsPresent Check Action which is used to verify if a data point was submitted. Previously an 'always true' Custom Function Check Action was required. The IsPresent Check Action MUST be used for Rave EDC (RaveX) studies. This Diagnostic will find Custom Functions where the only C# code is 'return true;'. The Fix will replace the Custom Function Check Action with an IsPresent Check Action

  > | Name | Description | Setting Type | Default Value |
  > | --- | --- | --- | --- |
  > | Check_Exclusions | List of Checks to exclude, one per line.<br>Use wildcards to exclude Check Names starting or ending with characters, e.g.<br>CHK*<br>*STD<br>or regular expressions for more complex pattern matching (see help for more information)<br>^CHK.*STD$ | Textarea |  |

- **ID:** 0074

  **Name:** Rave EDC (RaveX) Supports only "NoLink" Form Redirect

  **Description:** Rave EDC (RaveX) does not support Form Redirect of Link Next or Link Custom. This Diagnostic identifies Forms which cannot be published to a Rave EDC (RaveX) study due to invalid Form Redirect. Fix sets the Redirect of the Form to "No Link".

  > | Name | Description | Setting Type | Default Value |
  > | --- | --- | --- | --- |
  > | Ignore Inactive | Ignore Inactive Forms | Boolean | True |
  > | Allow "No Link" | All Form Redirect/Confirmation style to have "No Link" value<br>Note: this value is supported by Rave EDC (RaveX) | Boolean | True |
  > | Allow "Link Next" | All Form Redirect/Confirmation style to have "Link Next" value.<br>Note: this value is NOT suppored by Rave EDC (RaveX) | Boolean | False |
  > | Allow "Link Custom" | All Form Redirect/Confirmation style to have "Link Custom" value.<br>Note: this value is NOT suppored by Rave EDC (RaveX) | Boolean | False |

- **ID:** 0077

  **Name:** Rave EDC (RaveX) does not support the File Upload control

  **Description:** Rave EDC (RaveX) does not support the File Upload control. Drafts with Fields using this control cannot be published for Rave EDC (RaveX).

<a id="naming"></a>
## Naming

Diagnostics to check compliance with naming conventions

- **ID:** 0013

  **Name:** Labels should have a consistent naming prefix or suffix

  **Description:** Label Fields are named according to naming convention starting with a prefix (e.g. LBL\_) or a suffix ( e.g. \_LBL). Denoting Label fields with a naming convention makes the purpose of label fields clearer. A value should be provided either for the prefix or the suffix, if both are present then both are applied i.e. the Field would have to be named [prefix\_]label[\_suffix]. If neither are present then no check is performed. A regular expression may be used instead of, or as well as, the prefix and suffix.

  > | Name | Description | Setting Type | Default Value |
  > | --- | --- | --- | --- |
  > | Prefix | A list of prefixes, one per line, that are valid prefixes for label Field OIDs. Leave blank for no prefix. | Textarea | LBL_ |
  > | Suffix | A list of suffixes, one per line, that are valid suffixes for label Field OIDs. Leave blank for no suffix. | Textarea |  |
  > | Regular Expression | Regular expressions, one per line, that the Field OID should match. The OID passes if it matches any one of the lines. Leave blank to skip this check.<br>For example, to accept OIDs which end in _LBL followed by any number of digits, so that AE_LBL, AE_LBL1 and AE_LBL999 all pass:<br>_LBLd*$<br>Expressions here are case-insensitive and are not anchored, so they match anywhere in the OID. Use ^ and $ to anchor them (see help for more information).<br>Where a prefix or suffix is also set, the OID must satisfy every setting, not just one of them. No corrected OID is offered when a regular expression is set, because there is no way to build a value that is certain to match one.<br>Avoid nesting one repeat inside another, such as ([A-Z0-9]+_?)+_LBL. Expressions of that shape can take a very long time on a Field OID that does not match, and the Diagnostic is stopped once it reaches its time limit. Write ^[A-Z0-9_]+_LBL$ instead. | Textarea |  |
  > | Ignore Inactive | Ignore Inactive Fields and Fields on Inactive Forms. | Boolean | True |
  > | Field OID Exclusions | List of Field OIDs to exclude, one per line.<br>Use wildcards to exclude Field OIDs starting or ending with characters, e.g.<br>FLD*<br>*DAT<br>or regular expressions for more complex pattern matching (see help for more information)<br>^FLD.*DAT$ | Textarea |  |
  > | Form OID Exclusions | List of Form OIDs to exclude, one per line.<br>Use wildcards to exclude Form OIDs starting or ending with characters, e.g.<br>FORM*<br>*DAT<br>or regular expressions for more complex pattern matching (see help for more information)<br>^FORM.*DAT$ | Textarea |  |

- **ID:** 0023

  **Name:** Date Fields should have a consistent naming suffix or prefix

  **Description:** Ensures that Fields with a ControlType of DateTime which are full or partial dates (i.e. with no time component) are named according to naming convention. The convention may enforce ending with a suffix (default DAT for compliance with CDASH), containing characters (e.g. must contain "DT") or must have a prefix. A regular expression may also be used, on its own or alongside the others. Leave a setting empty to ignore that rule. Note that if the Field OID is the same as the Variable OID then changing the Field OID also changes the Variable OID. If the Field and Variable OIDs were different before the change they are not made the same.

  > | Name | Description | Setting Type | Default Value |
  > | --- | --- | --- | --- |
  > | Prefix (must start with) | The prefix that all date Field OIDs should have (leave empty for none) | Text |  |
  > | Contains (must contain) | The string that all Field OIDs should contain (leave empty for none). Note that this can match at the start and end of the OID also so "DAT" will match the OIDs "DAT_X", "X_DAT", "XDATX" | Text |  |
  > | Suffix (must end with) | The suffix that all date Field OIDs should have (leave empty for none) | Text | DAT |
  > | Regular Expression | Regular expressions, one per line, that the Field OID should match. The OID passes if it matches any one of the lines. Leave blank to skip this check.<br>For example, to accept OIDs which end in _LBL followed by any number of digits, so that AE_LBL, AE_LBL1 and AE_LBL999 all pass:<br>_LBLd*$<br>Expressions here are case-insensitive and are not anchored, so they match anywhere in the OID. Use ^ and $ to anchor them (see help for more information).<br>Where a prefix or suffix is also set, the OID must satisfy every setting, not just one of them. No corrected OID is offered when a regular expression is set, because there is no way to build a value that is certain to match one.<br>Avoid nesting one repeat inside another, such as ([A-Z0-9]+_?)+_LBL. Expressions of that shape can take a very long time on a Field OID that does not match, and the Diagnostic is stopped once it reaches its time limit. Write ^[A-Z0-9_]+_LBL$ instead. | Textarea |  |
  > | Ignore Inactive | Ignore Inactive Fields and Fields on Inactive Forms. | Boolean | True |
  > | Field OID Exclusions | List of Field OIDs to exclude, one per line.<br>Use wildcards to exclude Field OIDs starting or ending with characters, e.g.<br>FLD*<br>*DAT<br>or regular expressions for more complex pattern matching (see help for more information)<br>^FLD.*DAT$<br>Note: You may wish to exclude RTSM standard fields: RANDOMIZED_AT, RANDDTC, RTSM_UPDATED_AT and RTSM_DISPENSED_AT | Textarea |  |

- **ID:** 0024

  **Name:** Time Fields should have a consistent naming suffix

  **Description:** Time Fields are named according to naming convention ending with a suffix (default TIM for compliance with CDASH) or matching a regular expression

  > | Name | Description | Setting Type | Default Value |
  > | --- | --- | --- | --- |
  > | Suffix | The suffix that all time field OIDs should have | Text | TIM |
  > | Regular Expression | Regular expressions, one per line, that the Field OID should match. The OID passes if it matches any one of the lines. Leave blank to skip this check.<br>For example, to accept OIDs which end in _LBL followed by any number of digits, so that AE_LBL, AE_LBL1 and AE_LBL999 all pass:<br>_LBLd*$<br>Expressions here are case-insensitive and are not anchored, so they match anywhere in the OID. Use ^ and $ to anchor them (see help for more information).<br>Where a prefix or suffix is also set, the OID must satisfy every setting, not just one of them. No corrected OID is offered when a regular expression is set, because there is no way to build a value that is certain to match one.<br>Avoid nesting one repeat inside another, such as ([A-Z0-9]+_?)+_LBL. Expressions of that shape can take a very long time on a Field OID that does not match, and the Diagnostic is stopped once it reaches its time limit. Write ^[A-Z0-9_]+_LBL$ instead. | Textarea |  |
  > | Field OID Exclusions | List of Field OIDs to exclude, one per line.<br>Use wildcards to exclude Field OIDs starting or ending with characters, e.g.<br>FLD*<br>*DAT<br>or regular expressions for more complex pattern matching (see help for more information)<br>^FLD.*DAT$ | Textarea |  |

- **ID:** 0025

  **Name:** Date/Time Fields should have a consistent naming suffix

  **Description:** Date/Time Fields are named according to naming convention ending with a suffix (default DTC for compliance with CDASH) or matching a regular expression

  > | Name | Description | Setting Type | Default Value |
  > | --- | --- | --- | --- |
  > | Suffix | The suffix that all date/time field OIDs should have | Text | DTC |
  > | Regular Expression | Regular expressions, one per line, that the Field OID should match. The OID passes if it matches any one of the lines. Leave blank to skip this check.<br>For example, to accept OIDs which end in _LBL followed by any number of digits, so that AE_LBL, AE_LBL1 and AE_LBL999 all pass:<br>_LBLd*$<br>Expressions here are case-insensitive and are not anchored, so they match anywhere in the OID. Use ^ and $ to anchor them (see help for more information).<br>Where a prefix or suffix is also set, the OID must satisfy every setting, not just one of them. No corrected OID is offered when a regular expression is set, because there is no way to build a value that is certain to match one.<br>Avoid nesting one repeat inside another, such as ([A-Z0-9]+_?)+_LBL. Expressions of that shape can take a very long time on a Field OID that does not match, and the Diagnostic is stopped once it reaches its time limit. Write ^[A-Z0-9_]+_LBL$ instead. | Textarea |  |
  > | Field OID Exclusions | List of Field OIDs to exclude, one per line.<br>Use wildcards to exclude Field OIDs starting or ending with characters, e.g.<br>FLD*<br>*DAT<br>or regular expressions for more complex pattern matching (see help for more information)<br>^FLD.*DAT$ | Textarea |  |

- **ID:** 0048

  **Name:** Derived Fields should have a standard prefix or suffix

  **Description:** When a Field is calculated by a Derivation there is no way to tell that this is the case from the Field. It is good practice to have a unique prefix (default DER\_), suffix or OID pattern to identify these Fields in the Architect Form editor.

  > | Name | Description | Setting Type | Default Value |
  > | --- | --- | --- | --- |
  > | Prefix | Comma separated list of allowed prefixes for derived Fields or empty for none | Text | DER_ |
  > | Suffix | Comma separated list of allowed suffixes for derived Fields or empty for none | Text |  |
  > | Regular Expression | Regular expressions, one per line, that the Field OID should match. The OID passes if it matches any one of the lines. Leave blank to skip this check.<br>For example, to accept OIDs which end in _LBL followed by any number of digits, so that AE_LBL, AE_LBL1 and AE_LBL999 all pass:<br>_LBLd*$<br>Expressions here are case-insensitive and are not anchored, so they match anywhere in the OID. Use ^ and $ to anchor them (see help for more information).<br>Where a prefix or suffix is also set, the OID must satisfy every setting, not just one of them. No corrected OID is offered when a regular expression is set, because there is no way to build a value that is certain to match one.<br>Avoid nesting one repeat inside another, such as ([A-Z0-9]+_?)+_LBL. Expressions of that shape can take a very long time on a Field OID that does not match, and the Diagnostic is stopped once it reaches its time limit. Write ^[A-Z0-9_]+_LBL$ instead. | Textarea |  |
  > | Field OID Exclusions | List of Field OIDs to exclude, one per line.<br>Use wildcards to exclude Field OIDs starting or ending with characters, e.g.<br>FLD*<br>*DAT<br>or regular expressions for more complex pattern matching (see help for more information)<br>^FLD.*DAT$ | Textarea |  |

- **ID:** 0075

  **Name:** Enforce Data Dictionary naming convention

  **Description:** This Diagnostics allows a naming convention for Data Dictionaries to be enforced by using a regular expression that the Dictionary Name must match.

  > | Name | Description | Setting Type | Default Value |
  > | --- | --- | --- | --- |
  > | Data_Dictionary_Exclusions | List of Data Dictionaries to exclude, one per line.<br>Use wildcards to exclude Data Dictionary Names starting or ending with characters, e.g.<br>DD*<br>*STD<br>or regular expressions for more complex pattern matching (see help for more information)<br>^DD.*STD$ | Textarea |  |
  > | Regular_Expression | Enter regular expression to which the Data Dictionary Name must conform. See Help for more information on regular expression pattern matching or contact TrialGrid support for assistance in determining the correct formula. | Textarea |  |

- **ID:** 0096

  **Name:** VariableOID should match FieldOID

  **Description:** Rave does not require that Fields have matching VariableOID and FieldOID properties. However, some organizations enforce this.

  > | Name | Description | Setting Type | Default Value |
  > | --- | --- | --- | --- |
  > | Field OID Exclusions | List of Field OIDs to exclude, one per line.<br>Use wildcards to exclude Field OIDs starting or ending with characters, e.g.<br>FLD*<br>*DAT<br>or regular expressions for more complex pattern matching (see help for more information)<br>^FLD.*DAT$ | Textarea |  |

- **ID:** 0098

  **Name:** Maximum SAS Label Length

  **Description:** Rave allows SAS Labels to be up to 256 characters but some organizations have stricter limits. This diagnostic will find SAS Labels greater than the length specified.

  > | Name | Description | Setting Type | Default Value |
  > | --- | --- | --- | --- |
  > | SAS Label max length | Labels longer than this value will be reported. | Text | 256 |
  > | Check default SAS Labels | Include default SAS Labels where SAS Label is not set on Field | Boolean | False |
  > | Field OID Exclusions | List of Field OIDs to exclude, one per line.<br>Use wildcards to exclude Field OIDs starting or ending with characters, e.g.<br>FLD*<br>*DAT<br>or regular expressions for more complex pattern matching (see help for more information)<br>^FLD.*DAT$ | Textarea |  |

- **ID:** 0128

  **Name:** FieldOID should match FieldName

  **Description:** Rave does not require that Fields have matching FieldOID and FieldName properties. However, some organizations enforce this. Fix will set FieldName to be the same as FieldOID.

  > | Name | Description | Setting Type | Default Value |
  > | --- | --- | --- | --- |
  > | Field OID Exclusions | List of Field OIDs to exclude, one per line.<br>Use wildcards to exclude Field OIDs starting or ending with characters, e.g.<br>FLD*<br>*DAT<br>or regular expressions for more complex pattern matching (see help for more information)<br>^FLD.*DAT$ | Textarea |  |

<a id="best-practice"></a>
## Best Practice

Diagnostics to check conformance with guidelines and best practices

- **ID:** 0001

  **Name:** Text/LongText Field Length

  **Description:** Compare Text and LongText Fields against a length threshold value. Fields with lengths below the threshold should be Text Fields, those equal or above the threshold should be LongText. Note: Fix will reset the control type of the Field to Text or LongText as appropriate.

  > | Name | Description | Setting Type | Default Value |
  > | --- | --- | --- | --- |
  > | Length | The threshold value | Text | 40 |
  > | Ignore Inactive | Ignore Inactive Fields and Fields on Inactive Forms. | Boolean | True |
  > | Form OID Exclusions | List of Form OIDs to exclude, one per line.<br>Use wildcards to exclude Form OIDs starting or ending with characters, e.g.<br>FORM*<br>*DAT<br>or regular expressions for more complex pattern matching (see help for more information)<br>^FORM.*DAT$ | Textarea |  |
  > | Field OID Exclusions | List of Field OIDs to exclude, one per line.<br>Use wildcards to exclude Field OIDs starting or ending with characters, e.g.<br>FLD*<br>*DAT<br>or regular expressions for more complex pattern matching (see help for more information)<br>^FLD.*DAT$ | Textarea |  |

- **ID:** 0002

  **Name:** Text Fields Length Limit

  **Description:** Check that all text format Fields are less than a threshold length

  > | Name | Description | Setting Type | Default Value |
  > | --- | --- | --- | --- |
  > | Length | Length of text format Fields should be less than this value | Text | 200 |
  > | Ignore Inactive | Ignore Inactive Fields and Fields on Inactive Forms. | Boolean | True |
  > | Field OID Exclusions | List of Field OIDs to exclude, one per line.<br>Use wildcards to exclude Field OIDs starting or ending with characters, e.g.<br>FLD*<br>*DAT<br>or regular expressions for more complex pattern matching (see help for more information)<br>^FLD.*DAT$ | Textarea |  |
  > | Form OID Exclusions | List of Form OIDs to exclude, one per line.<br>Use wildcards to exclude Form OIDs starting or ending with characters, e.g.<br>FORM*<br>*DAT<br>or regular expressions for more complex pattern matching (see help for more information)<br>^FORM.*DAT$ | Textarea |  |

- **ID:** 0003

  **Name:** Field OID Length Limit

  **Description:** Check that all Field OIDs are less than a threshold length

  > | Name | Description | Setting Type | Default Value |
  > | --- | --- | --- | --- |
  > | Length | Length of field OIDs should be less than this value | Text | 7 |
  > | Ignore Inactive | Ignore Inactive Fields and Fields on Inactive Forms. | Boolean | True |
  > | Field OID Exclusions | List of Field OIDs to exclude, one per line.<br>Use wildcards to exclude Field OIDs starting or ending with characters, e.g.<br>FLD*<br>*DAT<br>or regular expressions for more complex pattern matching (see help for more information)<br>^FLD.*DAT$ | Textarea |  |
  > | Form OID Exclusions | List of Form OIDs to exclude, one per line.<br>Use wildcards to exclude Form OIDs starting or ending with characters, e.g.<br>FORM*<br>*DAT<br>or regular expressions for more complex pattern matching (see help for more information)<br>^FORM.*DAT$ | Textarea |  |

- **ID:** 0011

  **Name:** Fields using the same Data Dictionary have identical format

  **Description:** Ensure that all Fields referencing a Data Dictionary use the same format

  > | Name | Description | Setting Type | Default Value |
  > | --- | --- | --- | --- |
  > | Ignore Inactive | Ignore Inactive Fields and Fields on Inactive Forms. | Boolean | True |
  > | Field OID Exclusions | List of Field OIDs to exclude, one per line.<br>Use wildcards to exclude Field OIDs starting or ending with characters, e.g.<br>FLD*<br>*DAT<br>or regular expressions for more complex pattern matching (see help for more information)<br>^FLD.*DAT$ | Textarea |  |
  > | Data_Dictionary_Exclusions | List of Data Dictionaries to exclude, one per line.<br>Use wildcards to exclude Data Dictionary Names starting or ending with characters, e.g.<br>DD*<br>*STD<br>or regular expressions for more complex pattern matching (see help for more information)<br>^DD.*STD$ | Textarea |  |

- **ID:** 0012

  **Name:** Fields using the same Unit Dictionary have identical format

  **Description:** Ensure that all Fields referencing a Unit Dictionary use the same format

  > | Name | Description | Setting Type | Default Value |
  > | --- | --- | --- | --- |
  > | Ignore Inactive | Ignore Inactive Fields and Fields on Inactive Forms. | Boolean | True |
  > | Field OID Exclusions | List of Field OIDs to exclude, one per line.<br>Use wildcards to exclude Field OIDs starting or ending with characters, e.g.<br>FLD*<br>*DAT<br>or regular expressions for more complex pattern matching (see help for more information)<br>^FLD.*DAT$ | Textarea |  |

- **ID:** 0015

  **Name:** Dictionary Fields are of appropriate display type

  **Description:** Ensure that Dictionary Fields use appropriate RadioButton vs DropDownList vs SearchList. For example, it is considered good practice when a Dictionary has only a few options to use a horizontal radio-button group. For longer Dictionaries a set of vertical radiobuttons or a DropDownList may be more appropriate.

  > | Name | Description | Setting Type | Default Value |
  > | --- | --- | --- | --- |
  > | Ignore Inactive | Ignore Inactive Fields and Fields on Inactive Forms. | Boolean | True |
  > | Portrait Forms : Radiobutton Horizontal | Radiobutton horizontal is appropriate when there are ... Data Dictionary entries | Text | 1-2 |
  > | Portrait Forms : Radiobutton Vertical | Radiobutton Vertical is appropriate when there are ... Data Dictionary entries | Text | 3-5 |
  > | Portrait Forms : DropDown | DropDown is appropriate when there are ... Data Dictionary entries | Text | 6-12 |
  > | Portrait Forms : Searchlist | Searchlist is appropriate when there are ... Data Dictionary entries | Text | 13- |
  > | Landscape Forms : Radiobutton Horizontal | Radiobutton horizontal is appropriate when there are ... Data Dictionary entries | Text | 1-2 |
  > | Landscape Forms : Radiobutton Vertical | Radiobutton Vertical is appropriate when there are ... Data Dictionary entries | Text | 3-5 |
  > | Landscape Forms : DropDown | DropDown is appropriate when there are ... Data Dictionary entries | Text | 6-12 |
  > | Landscape Forms : Searchlist | Searchlist is appropriate when there are ... Data Dictionary entries | Text | 13- |
  > | Field OID Exclusions | List of Field OIDs to exclude, one per line.<br>Use wildcards to exclude Field OIDs starting or ending with characters, e.g.<br>FLD*<br>*DAT<br>or regular expressions for more complex pattern matching (see help for more information)<br>^FLD.*DAT$ | Textarea |  |

- **ID:** 0028

  **Name:** Data Dictionary CodedData should not contain double backslash.

  **Description:** Prior to Rave 2018.1.0 commas (,) and semicolons (;) in Data Dictionary Coded Fields are not permitted since Rave uses these to indicate specify values on Data Dictionaries which use the specify feature. From Rave 2018.1.0 onward commas and semicolons are permitted but double backslash (\) is no longer permitted.

  > | Name | Description | Setting Type | Default Value |
  > | --- | --- | --- | --- |
  > | User Rave 2018.1.0+ mode | When checked, this option looks for \ characters rather than commas and semicolons. | Boolean | true |
  > | Data_Dictionary_Exclusions | List of Data Dictionaries to exclude, one per line.<br>Use wildcards to exclude Data Dictionary Names starting or ending with characters, e.g.<br>DD*<br>*STD<br>or regular expressions for more complex pattern matching (see help for more information)<br>^DD.*STD$ | Textarea |  |

- **ID:** 0030

  **Name:** Custom Function length

  **Description:** Custom Functions cannot be longer than 8000 characters. Custom Functions approaching that limit may be difficult to change in future. Note that each line break counts as 2 characters in Rave.

  > | Name | Description | Setting Type | Default Value |
  > | --- | --- | --- | --- |
  > | Length | Length of Custom Function Source Code should not be greater than this value | Text | 7000 |
  > | Custom_Function_Exclusions | List of Custom Functions to exclude, one per line.<br>Use wildcards to exclude Function Names starting or ending with characters, e.g.<br>CF*<br>*STD<br>or regular expressions for more complex pattern matching (see help for more information)<br>^CF.*STD$ | Textarea |  |

- **ID:** 0035

  **Name:** Data entry Fields should have a SAS Label

  **Description:** Data entry fields should have a SAS label set. If a SAS label is not set it will default to the Field Name.

  > | Name | Description | Setting Type | Default Value |
  > | --- | --- | --- | --- |
  > | Ignore Inactive | Ignore Inactive Fields and Fields on Inactive Forms. | Boolean | True |
  > | Field OID Exclusions | List of Field OIDs to exclude, one per line.<br>Use wildcards to exclude Field OIDs starting or ending with characters, e.g.<br>FLD*<br>*DAT<br>or regular expressions for more complex pattern matching (see help for more information)<br>^FLD.*DAT$ | Textarea |  |

- **ID:** 0036

  **Name:** Fields with default values should not have SDV set

  **Description:** When a Field has a default value, it should not require Source Document Verification (SDV). Fix will remove SDV setting.

  > | Name | Description | Setting Type | Default Value |
  > | --- | --- | --- | --- |
  > | Field OID Exclusions | List of Field OIDs to exclude, one per line.<br>Use wildcards to exclude Field OIDs starting or ending with characters, e.g.<br>FLD*<br>*DAT<br>or regular expressions for more complex pattern matching (see help for more information)<br>^FLD.*DAT$ | Textarea |  |

- **ID:** 0037

  **Name:** Fields with default values should not be set as Required

  **Description:** When a Field has a default value it should not be set as a required. Ignores inactive and invisible fields and fields on inactive forms. Field.

  > | Name | Description | Setting Type | Default Value |
  > | --- | --- | --- | --- |
  > | Field OID Exclusions | List of Field OIDs to exclude, one per line.<br>Use wildcards to exclude Field OIDs starting or ending with characters, e.g.<br>FLD*<br>*DAT<br>or regular expressions for more complex pattern matching (see help for more information)<br>^FLD.*DAT$ | Textarea |  |

- **ID:** 0038

  **Name:** Checkbox and Data Dictionary Fields should not be set to Query for Non-Conformance

  **Description:** Checkboxes cannot have data entered which is non-conformant so setting this attribute has no meaning. Data Dictionary Fields can only be non-conformant if the Specify option is set on a Data Dictionary Entry. This Diagnostic flags Fields which use Data Dictionaries which do not have a Specify option set.

  > | Name | Description | Setting Type | Default Value |
  > | --- | --- | --- | --- |
  > | Field OID Exclusions | List of Field OIDs to exclude, one per line.<br>Use wildcards to exclude Field OIDs starting or ending with characters, e.g.<br>FLD*<br>*DAT<br>or regular expressions for more complex pattern matching (see help for more information)<br>^FLD.*DAT$ | Textarea |  |

- **ID:** 0041

  **Name:** Data Dictionaries should not have a coded value of 0 (Zero)

  **Description:** Best practice is not to have a coded value of 0 (Zero) in a Data Dictionary. Fields which use a Data Dictionary with a 0 value will need to have IsNotEmpty checked with an Edit Check because Rave treats a 0 value as no data/not done (i.e. when no data is entered CodedValue = 0). The Fix action for this Diagnostic is to prompt the user for a new Coded Value for the Data Dictionary Entry with Coded Value of 0. Note that the Fix does NOT identify or change Edit Checks which compare against this value.

  > | Name | Description | Setting Type | Default Value |
  > | --- | --- | --- | --- |
  > | Data_Dictionary_Exclusions | List of Data Dictionaries to exclude, one per line.<br>Use wildcards to exclude Data Dictionary Names starting or ending with characters, e.g.<br>DD*<br>*STD<br>or regular expressions for more complex pattern matching (see help for more information)<br>^DD.*STD$ | Textarea |  |

- **ID:** 0042

  **Name:** Consider setting QueryNonConformance for Fields related to Data Dictionaries with a Specify option

  **Description:** When a Data Dictionary has a Specify option the user may enter non-conformant data in the specify field. Consider setting QueryNonConformance check for these Fields.

  > | Name | Description | Setting Type | Default Value |
  > | --- | --- | --- | --- |
  > | Field OID Exclusions | List of Field OIDs to exclude, one per line.<br>Use wildcards to exclude Field OIDs starting or ending with characters, e.g.<br>FLD*<br>*DAT<br>or regular expressions for more complex pattern matching (see help for more information)<br>^FLD.*DAT$ | Textarea |  |
  > | Data_Dictionary_Exclusions | List of Data Dictionaries to exclude, one per line.<br>Use wildcards to exclude Data Dictionary Names starting or ending with characters, e.g.<br>DD*<br>*STD<br>or regular expressions for more complex pattern matching (see help for more information)<br>^DD.*STD$ | Textarea |  |

- **ID:** 0043

  **Name:** Data Dictionaries should be unique

  **Description:** Check that there are no duplicate Data Dictionaries. A duplicate is the same Coded and User Values / Specify options regardless of ordering of the entries.

  > | Name | Description | Setting Type | Default Value |
  > | --- | --- | --- | --- |
  > | Data_Dictionary_Exclusions | List of Data Dictionaries to exclude, one per line.<br>Use wildcards to exclude Data Dictionary Names starting or ending with characters, e.g.<br>DD*<br>*STD<br>or regular expressions for more complex pattern matching (see help for more information)<br>^DD.*STD$ | Textarea |  |

- **ID:** 0051

  **Name:** Fields should have a SAS Format specified

  **Description:** Fields should have a SAS Format specified.

  > | Name | Description | Setting Type | Default Value |
  > | --- | --- | --- | --- |
  > | Ignore Inactive | Ignore Inactive Fields and Fields on Inactive Forms. | Boolean | True |
  > | Field OID Exclusions | List of Field OIDs to exclude, one per line.<br>Use wildcards to exclude Field OIDs starting or ending with characters, e.g.<br>FLD*<br>*DAT<br>or regular expressions for more complex pattern matching (see help for more information)<br>^FLD.*DAT$ | Textarea |  |
  > | Date/Time | Check that date/time Fields have a SAS Format | Boolean | True |
  > | Text | Check that text Fields have a SAS Format | Boolean | False |
  > | Integer | Check that integer Fields have a SAS Format | Boolean | False |
  > | Float | Check that floating point numeric Fields have a SAS Format | Boolean | False |

- **ID:** 0054

  **Name:** Unused objects (Data Dictionaries, Unit Dictionaries, Custom Functions)

  **Description:** Unused objects may indicate an issue in the study build. The Diagnostic message will indicate if a Custom Function is called by another Custom Function. NOTE: Fixing this result will delete the unused object.

  > | Name | Description | Setting Type | Default Value |
  > | --- | --- | --- | --- |
  > | Data_Dictionary_Exclusions | List of Data Dictionaries to exclude, one per line.<br>Use wildcards to exclude Data Dictionary Names starting or ending with characters, e.g.<br>DD*<br>*STD<br>or regular expressions for more complex pattern matching (see help for more information)<br>^DD.*STD$ | Textarea |  |
  > | Unit_Dictionary_Exclusions | List of Unit Dictionaries to exclude, one per line.<br>Use wildcards to exclude Unit Dictionary Names starting or ending with characters, e.g.<br>UD*<br>*STD<br>or regular expressions for more complex pattern matching (see help for more information)<br>^UD.*STD$ | Textarea |  |
  > | Custom_Function_Exclusions | List of Custom Functions to exclude, one per line.<br>Use wildcards to exclude Function Names starting or ending with characters, e.g.<br>CF*<br>*STD<br>or regular expressions for more complex pattern matching (see help for more information)<br>^CF.*STD$ | Textarea |  |

- **ID:** 0062

  **Name:** Default values in Log Fields in a Form are consistent

  **Description:** Rave allows Log Fields to have default values specified. This has the effect of automatically creating log line records with those default values entered. e.g. a default value of A\|B\|C will cause 3 log lines to be created, one for each value in this Field. The default delimiter is the \| symbol. If this symbol appears at the end of a value list e.g. A\|B\|C\| then the effect is to prevent further log lines from being added by the user. This Diagnostic detects the situation where one log fields entries clash with another. e.g. If default value for Field1 is A\|B\| and for Field2 is C\|D\|E then Rave will adopt the shortest list (A\|B\|) and the log line E for Field2 will not be created.

  > | Name | Description | Setting Type | Default Value |
  > | --- | --- | --- | --- |
  > | Field OID Exclusions | List of Field OIDs to exclude, one per line.<br>Use wildcards to exclude Field OIDs starting or ending with characters, e.g.<br>FLD*<br>*DAT<br>or regular expressions for more complex pattern matching (see help for more information)<br>^FLD.*DAT$ | Textarea |  |

- **ID:** 0097

  **Name:** Fields of ControlType Signature should not be used

  **Description:** Since Rave 2015.1.0 loading an ALS or publishing a Draft containing Fields with control type Signature causes a warning. Medidata Recommends using Form level signatures instead.

- **ID:** 0100

  **Name:** Clinical views can have a maximum of 144 Fields

  **Description:** Clinical Views are constructed one View per Form. A maximum of 144 Fields can be included in a Clinical View across all published Versions. Label fields are not counted. Inactivated and Deleted fields count toward this number if they are active in an expecting published version. Fields after the 144th Field in a Form are NOT INCLUDED in Clinical Views. This diagnostic identifies Forms which have more Fields than the threshold. Forms which are close to the 144 Field limit should be carefully managed to avoid going over the limit.

  > | Name | Description | Setting Type | Default Value |
  > | --- | --- | --- | --- |
  > | Field Count | The threshold value. Field count must be Greater than this to be reported. | Text | 140 |
  > | Check other Drafts in this Project? | Count unique Field across all Drafts in this Project? | Boolean | False |
  > | Form OID Exclusions | List of Form OIDs to exclude, one per line.<br>Use wildcards to exclude Form OIDs starting or ending with characters, e.g.<br>FORM*<br>*DAT<br>or regular expressions for more complex pattern matching (see help for more information)<br>^FORM.*DAT$ | Textarea |  |

- **ID:** 0109

  **Name:** Fields should NOT have a SAS Format specified

  **Description:** Fields should NOT have a SAS Format specified. This allows SAS On Demand to choose an appropriate SAS Format which is generally what you want. This Diagnostic is the opposite of Diagnostic 51. Use when you do not wish fields to have SAS Formats specified. This Diagnostic excludes Inactive Fields and Fields on Inactive Forms.

  > | Name | Description | Setting Type | Default Value |
  > | --- | --- | --- | --- |
  > | Field OID Exclusions | List of Field OIDs to exclude, one per line.<br>Use wildcards to exclude Field OIDs starting or ending with characters, e.g.<br>FLD*<br>*DAT<br>or regular expressions for more complex pattern matching (see help for more information)<br>^FLD.*DAT$ | Textarea |  |

- **ID:** 0110

  **Name:** ePRO Forms should not require signature

  **Description:** ePRO Forms should not be set to Signature Required. Fix will remove Requires Signature setting.

  > | Name | Description | Setting Type | Default Value |
  > | --- | --- | --- | --- |
  > | Ignore Inactive | Ignore Inactive Forms | Boolean | True |

- **ID:** 0111

  **Name:** Ensure a set of Custom Functions exist in a Draft

  **Description:** This Diagnostic checks that a set of named Custom Functions, or at least 1 Custom Function matching a pattern, exists in the Draft. Multiple Custom Function names/patterns to find may be entered.

  > | Name | Description | Setting Type | Default Value |
  > | --- | --- | --- | --- |
  > | Function names | List of Custom Functions which should exist in the Draft, one per line.<br>Enter exact names or use regular expressions (see help for more information)e.g.<br>CUSTOM_FUNCTION1 - Matches to "CUSTOM_FUNCTION1" only<br>^CF_.*_IRT$ - Matches to CF_ABC_IRT, CF_SOME_NAME_IRT etc (note regular expressions must start with ^) | Textarea |  |

- **ID:** 0112

  **Name:** Variables which are targets of Set Dynamic Search List Check Actions should have a Control Type of DynamicSearchList.

  **Description:** Rave Architect will allow some Variables which are targeted by a Set Dynamic Search List Check Action to have a Control Type other than DynamicSearchList. Fix will make the ControlType of the Field DynamicSearchList. This Diagnostic ignores Inactive Checks.

- **ID:** 0113

  **Name:** Primary Form may not have DynamicSearchList controls.

  **Description:** A Primary Form which has Fields with ControlType set to DynamicSearchList cannot be published. This Diagnostic detects DynamicSearchList controls on the Primary Form.

- **ID:** 0114

  **Name:** Forms should have Confirm Save set.

  **Description:** Rave has 4 settings for Save Confirmation - No Confirmation (Save Confirm checkbox unchecked), No Link, Link Next and Link Custom. This Diagnostic checks that it is not set to "No Confirmation". To Enforce a particular Confirmation Style see Diagnostic 74. To enforce that the Save Confirm checkbox is unchecked (No Confirmation) see Diagnostic 176.

  > | Name | Description | Setting Type | Default Value |
  > | --- | --- | --- | --- |
  > | Ignore Inactive | Ignore Inactive Forms. | Boolean | True |
  > | Form OID Exclusions | List of Form OIDs to exclude, one per line.<br>Use wildcards to exclude Form OIDs starting or ending with characters, e.g.<br>FORM*<br>*DAT<br>or regular expressions for more complex pattern matching (see help for more information)<br>^FORM.*DAT$ | Textarea |  |

- **ID:** 0115

  **Name:** Ensure specific Forms/Folder/Matrix combinations exist

  **Description:** This Diagnostic checks that specific Form/Folder combinations exist in either specific Matrices or in Any Matrix. If a combination exists but the Form is inactive then a warning is given.

  > | Name | Description | Setting Type | Default Value |
  > | --- | --- | --- | --- |
  > | Form OID / Folder OID / Matrix OID combinations | List of Form OID / Folder OID / Matrix OID combinations to find, separated by / e.g. "FORM1/FOLDER1/MATRIX1".<br>Matrices may be Wildcarded with * e.g "FORM1/FOLDER1/*" to mean combination exists in ANY Matrix. | Textarea |  |
  > | Matrix_Exclusions | List of Matrices to exclude, one per line.<br>Use wildcards to exclude Matrix OIDs starting or ending with characters, e.g.<br>*MAT<br>*DAT<br>or regular expressions for more complex pattern matching (see help for more information)<br>^MAT.*DAT$ | Textarea |  |

- **ID:** 0116

  **Name:** Ensure specific Forms/Fields have Set Folder Observation Date checked in order to support studies which use the Subject Calendar

  **Description:** This Diagnostic checks that specific Form OID/Field OID combinations have Set Folder Observation Date set. If a combination exists but the Form or Field is inactive or the Field is not a Date then a warning is given. Fix will set the "Set Folder Observation Date" flag to True.

  > | Name | Description | Setting Type | Default Value |
  > | --- | --- | --- | --- |
  > | Form OID / Field OID combinations | List of Form OID / Field OID combinations to find, separated by / e.g. "FORM1/FIELD1". | Textarea |  |

- **ID:** 0117

  **Name:** Check the name of the Primary Form

  **Description:** This Diagnostic checks that the Primary Form for the Draft has a specific name or matches a specific pattern (e.g. contains the word "Subject")

  > | Name | Description | Setting Type | Default Value |
  > | --- | --- | --- | --- |
  > | Form Name matches | List of Form Names which are acceptable for the Primary Form, one per line.<br>Enter an exact name or use wildcards to allow Form names starting or ending with characters, e.g.<br>Subject Identification<br>Subject*<br>*Identification<br>or regular expressions for more complex pattern matching (see help for more information)<br>^Subject (Identification\|Details)$ | Textarea |  |

- **ID:** 0118

  **Name:** Check Draft Confirmation Message and Signature Prompts match expected text

  **Description:** This Diagnostic checks that the Save Confirmation Message and Signature Prompt text for the Draft exactly match the values provided. This allows organizations to ensure that their legal wording is being reproduced precisely in study designs.

  > | Name | Description | Setting Type | Default Value |
  > | --- | --- | --- | --- |
  > | Confirmation Message | The exact text the confirmation message must match. Leave blank to ignore this check. | Textarea |  |
  > | Signature Prompt | The exact text the signature prompt must match. Leave blank to ignore this check. | Textarea |  |

- **ID:** 0119

  **Name:** Fields of ControlType CheckBox should not be used except on a specific set of Forms or Fields

  **Description:** Some organizations do not use CheckBox controls except in specific circumstances. Checkboxes have a value of Checked (1) or Unchecked (0) which makes it impossible to know if a user deliberately chose not to check a box or overlooked the question.

  > | Name | Description | Setting Type | Default Value |
  > | --- | --- | --- | --- |
  > | Form OID Exclusions | List of Form OIDs to exclude, one per line.<br>Use wildcards to exclude Form OIDs starting or ending with characters, e.g.<br>FORM*<br>*DAT<br>or regular expressions for more complex pattern matching (see help for more information)<br>^FORM.*DAT$ | Textarea |  |
  > | Field OID Exclusions | List of Field OIDs to exclude, one per line.<br>Use wildcards to exclude Field OIDs starting or ending with characters, e.g.<br>FLD*<br>*DAT<br>or regular expressions for more complex pattern matching (see help for more information)<br>^FLD.*DAT$ | Textarea |  |

- **ID:** 0120

  **Name:** No Form should have an OID starting with ECOA or EPRO

  **Description:** Prefixing a Form OID with ECOA or EPRO will force the Form to appear in the ePRO application regardless of any other settings. Use the Patient Cloud Form setting instead. This diagnostic is only applicable to studies using Medidata Patient Cloud.

  > | Name | Description | Setting Type | Default Value |
  > | --- | --- | --- | --- |
  > | Ignore Inactive | Ignore Inactive Forms | Boolean | True |

- **ID:** 0121

  **Name:** Fields on ePRO Forms should use only supported Control Types

  **Description:** Fields on ePRO forms should use only Control Types supported by Patient Cloud. These are: Checkbox DateTime DropDownList LongText RadioButton RadioButton (Vertical) Text

  Other control types may cause unexpected results with the device. Note that ePRO forms are those with a FormOID prefix of ECOA or EPRO and/or the Patient Cloud Setting.

  > | Name | Description | Setting Type | Default Value |
  > | --- | --- | --- | --- |
  > | Ignore Inactive | Ignore Inactive Fields and Fields on Inactive Forms. | Boolean | True |

- **ID:** 0122

  **Name:** DateTime Fields on ePRO Forms should use only supported Data Formats

  **Description:** ePRO does not support seconds (ss) in data formats, partial dates (dd- MMM- yyyy), or dashes (-) in Date Formats. Dates should only be specified in Day / Month / Year format (dd MMM yyyy or dd/MMM/yyyy) since other formats are only supported in Rave EDC not in ePRO.

  > | Name | Description | Setting Type | Default Value |
  > | --- | --- | --- | --- |
  > | Ignore Inactive | Ignore Inactive Fields and Fields on Inactive Forms. | Boolean | True |

- **ID:** 0123

  **Name:** Fields on ePRO Forms do not support Default Values, Unit Dictionaries and Dictionaries with Specify Options

  **Description:** ePRO does not support Default Value, Unit Dictionary selection or Data Dictionaries with a Specify option set. These should not be used since they do not display in the ePRO app as defined.

  > | Name | Description | Setting Type | Default Value |
  > | --- | --- | --- | --- |
  > | Ignore Inactive | Ignore Inactive Fields and Fields on Inactive Forms. | Boolean | True |

- **ID:** 0127

  **Name:** Fields should not have SDV set

  **Description:** This Diagnostic is appropriate where SDV will not be used in a study or where SDV is set only with Targeted SDV (TSDV) and no base set of fields is marked for SDV. Fix will remove the SDV flag from Fields. Inactive Fields and Fields on inactive Forms are ignored.

  > | Name | Description | Setting Type | Default Value |
  > | --- | --- | --- | --- |
  > | Field OID Exclusions | List of Field OIDs to exclude, one per line.<br>Use wildcards to exclude Field OIDs starting or ending with characters, e.g.<br>FLD*<br>*DAT<br>or regular expressions for more complex pattern matching (see help for more information)<br>^FLD.*DAT$ | Textarea |  |

- **ID:** 0130

  **Name:** Fields which have an Analyte name should have Clinical Significance set

  **Description:** Fields which have an Analyte name should also have Prompt for Clinical Significance set. Note: Fix will set Prompt for Clinical Significance = True. See Diagnostic 171 for a version of this diagnostic which checks that Prompt for Clinical Significance is NOT set for Analyte fields.

  > | Name | Description | Setting Type | Default Value |
  > | --- | --- | --- | --- |
  > | Ignore Inactive | Ignore Inactive Fields and Fields on Inactive Forms. | Boolean | True |
  > | Field OID Exclusions | List of Field OIDs to exclude, one per line.<br>Use wildcards to exclude Field OIDs starting or ending with characters, e.g.<br>FLD*<br>*DAT<br>or regular expressions for more complex pattern matching (see help for more information)<br>^FLD.*DAT$ | Textarea |  |

- **ID:** 0131

  **Name:** Rave Project Names length and characters

  **Description:** Project Names in Rave should not be longer than 30 characters and should not include special characters, otherwise the Rave Project might not be accessible from J-Review or Business Objects. See [Creating Projects in Rave](https://learn.medidata.com/en-US/bundle/rave-architect-stg/page/creating\_projects\_in\_rave\_architect.html)

  > | Name | Description | Setting Type | Default Value |
  > | --- | --- | --- | --- |
  > | Maximum length | Maximum length of Rave Project Name | Text | 30 |
  > | Allowed characters | List of characters which are allowed in Rave Project Names | Textarea | ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_ |

- **ID:** 0132

  **Name:** Forms and Fields should not be View or Entry restricted to certain EDC Roles

  **Description:** Forms and Fields should not be View or Entry restricted to certain EDC Roles

  > | Name | Description | Setting Type | Default Value |
  > | --- | --- | --- | --- |
  > | Role Names | List of EDC Roles which should not be view or entry restricted | EDCRole |  |
  > | Ignore Inactive | Ignore Inactive Forms and Fields | Boolean | True |
  > | Field OID Exclusions | List of Field OIDs to exclude, one per line.<br>Use wildcards to exclude Field OIDs starting or ending with characters, e.g.<br>FLD*<br>*DAT<br>or regular expressions for more complex pattern matching (see help for more information)<br>^FLD.*DAT$ | Textarea |  |

- **ID:** 0133

  **Name:** Forms and Fields should not be View restricted to certain EDC Roles

  **Description:** Forms and Fields should not be View restricted to certain EDC Roles. Entry restrictions are allowed.

  > | Name | Description | Setting Type | Default Value |
  > | --- | --- | --- | --- |
  > | Role Names | List of EDC Roles which should not be view restricted | EDCRole |  |
  > | Ignore Inactive | Ignore Inactive Forms and Fields | Boolean | True |
  > | Field OID Exclusions | List of Field OIDs to exclude, one per line.<br>Use wildcards to exclude Field OIDs starting or ending with characters, e.g.<br>FLD*<br>*DAT<br>or regular expressions for more complex pattern matching (see help for more information)<br>^FLD.*DAT$ | Textarea |  |
  > | Form OID Exclusions | List of Form OIDs to exclude, one per line.<br>Use wildcards to exclude Form OIDs starting or ending with characters, e.g.<br>FORM*<br>*DAT<br>or regular expressions for more complex pattern matching (see help for more information)<br>^FORM.*DAT$ | Textarea |  |

- **ID:** 0134

  **Name:** Text Fields longer than a configurable threshold should have query non-conformance set

  **Description:** If a Text Field has a format meeting or exceeding the configured length threshold (default 200 characters), data longer than the format may be truncated by Rave, and so query non-conformance should be set

  > | Name | Description | Setting Type | Default Value |
  > | --- | --- | --- | --- |
  > | Ignore Inactive | Ignore Inactive Fields and Fields on Inactive Forms. | Boolean | True |
  > | Field OID Exclusions | List of Field OIDs to exclude, one per line.<br>Use wildcards to exclude Field OIDs starting or ending with characters, e.g.<br>FLD*<br>*DAT<br>or regular expressions for more complex pattern matching (see help for more information)<br>^FLD.*DAT$ | Textarea |  |
  > | Entry Restriction Role Names | Exclude fields that are Entry or View Restricted to ALL of these EDC Roles. If a field (or its form) is restricted to all selected roles, it will not be checked. | EDCRole |  |
  > | Text Field Length Threshold | Text fields with a DataFormat of this length or longer will be checked. Fields shorter than this value are ignored. | Text | 200 |

- **ID:** 0135

  **Name:** Forms should not be set to EPRO

  **Description:** EPRO Forms should not be set

  > | Name | Description | Setting Type | Default Value |
  > | --- | --- | --- | --- |
  > | Ignore Inactive | Ignore Inactive Forms | Boolean | True |
  > | Form OID Exclusions | List of Form OIDs to exclude, one per line.<br>Use wildcards to exclude Form OIDs starting or ending with characters, e.g.<br>FORM*<br>*DAT<br>or regular expressions for more complex pattern matching (see help for more information)<br>^FORM.*DAT$ | Textarea |  |

- **ID:** 0136

  **Name:** Fields should not use more than the maximum number of Review Groups

  **Description:** Fields should not use more than the maximum number of Review Groups, otherwise the Rave Core Configuration will need to be changed.

  > | Name | Description | Setting Type | Default Value |
  > | --- | --- | --- | --- |
  > | Maximum | The maximum number of review groups | Text | 10 |
  > | Ignore Inactive | Ignore Inactive Fields and Fields on Inactive Forms. | Boolean | True |

- **ID:** 0137

  **Name:** Edit Checks should not use more than the maximum number of Marking Groups

  **Description:** Edit Checks should not use more than the maximum number of Marking Groups, otherwise the Rave Core Configuration will need to be changed.

  > | Name | Description | Setting Type | Default Value |
  > | --- | --- | --- | --- |
  > | Maximum | The maximum number of marking groups | Text | 10 |
  > | Ignore Inactive | Ignore Inactive Checks. When set Inactive Checks will be excluded from results. | Boolean | True |

- **ID:** 0138

  **Name:** Fields OIDs should not start with a number

  **Description:** Fields OIDs should not start with a number

  > | Name | Description | Setting Type | Default Value |
  > | --- | --- | --- | --- |
  > | Ignore Inactive | Ignore Inactive Fields and Fields on Inactive Forms. | Boolean | True |
  > | Field OID Exclusions | List of Field OIDs to exclude, one per line.<br>Use wildcards to exclude Field OIDs starting or ending with characters, e.g.<br>FLD*<br>*DAT<br>or regular expressions for more complex pattern matching (see help for more information)<br>^FLD.*DAT$ | Textarea |  |

- **ID:** 0139

  **Name:** Forms with Lab Analyte fields should have a Field to set the Observation (record or datapage) date

  **Description:** Forms with Lab Analyte fields should have a Field to set the Observation (record or datapage) date

  > | Name | Description | Setting Type | Default Value |
  > | --- | --- | --- | --- |
  > | Ignore Inactive | Ignore Inactive Forms | Boolean | True |
  > | Form OID Exclusions | List of Form OIDs to exclude, one per line.<br>Use wildcards to exclude Form OIDs starting or ending with characters, e.g.<br>FORM*<br>*DAT<br>or regular expressions for more complex pattern matching (see help for more information)<br>^FORM.*DAT$ | Textarea |  |

- **ID:** 0140

  **Name:** Standard Fields should be before Log Fields

  **Description:** Standard Fields should be before Log Fields. Derived Fields and Labels are excluded from findings.

  > | Name | Description | Setting Type | Default Value |
  > | --- | --- | --- | --- |
  > | Ignore Inactive | Ignore Inactive Fields and Fields on Inactive Forms. | Boolean | True |
  > | Field OID Exclusions | List of Field OIDs to exclude, one per line.<br>Use wildcards to exclude Field OIDs starting or ending with characters, e.g.<br>FLD*<br>*DAT<br>or regular expressions for more complex pattern matching (see help for more information)<br>^FLD.*DAT$ | Textarea |  |

- **ID:** 0141

  **Name:** Inactive Forms

  **Description:** Inactive Forms. Fix will delete the Form.

  > | Name | Description | Setting Type | Default Value |
  > | --- | --- | --- | --- |
  > | Form OID Exclusions | List of Form OIDs to exclude, one per line.<br>Use wildcards to exclude Form OIDs starting or ending with characters, e.g.<br>FORM*<br>*DAT<br>or regular expressions for more complex pattern matching (see help for more information)<br>^FORM.*DAT$ | Textarea |  |

- **ID:** 0143

  **Name:** Data Dictionary Entries should not have Specify set

  **Description:** If "Other, Specify" is needed create separate field to capture the "Specify" information. The built in "Specify" capability should not be used because it can lead to data truncation if the "other" value entered is long. Note that the fix will set Specify = False

  > | Name | Description | Setting Type | Default Value |
  > | --- | --- | --- | --- |
  > | Data_Dictionary_Exclusions | List of Data Dictionaries to exclude, one per line.<br>Use wildcards to exclude Data Dictionary Names starting or ending with characters, e.g.<br>DD*<br>*STD<br>or regular expressions for more complex pattern matching (see help for more information)<br>^DD.*STD$ | Textarea |  |

- **ID:** 0144

  **Name:** Data Dictionary Entries should not have HTML tags or <string> content

  **Description:** Do not use HTML tags or "<string>" in dictionaries because this causes inability to render eCRF within Rave EDC and PDF Generator module. Note that fix will remove all tags

  > | Name | Description | Setting Type | Default Value |
  > | --- | --- | --- | --- |
  > | Data_Dictionary_Exclusions | List of Data Dictionaries to exclude, one per line.<br>Use wildcards to exclude Data Dictionary Names starting or ending with characters, e.g.<br>DD*<br>*STD<br>or regular expressions for more complex pattern matching (see help for more information)<br>^DD.*STD$ | Textarea |  |

- **ID:** 0145

  **Name:** Form Names should not contain words greater than 25 characters in length

  **Description:** A single word within FormName should not exceed 25 characters to ensure it correctly displays in Rave. This is for Classic Rave only.

  > | Name | Description | Setting Type | Default Value |
  > | --- | --- | --- | --- |
  > | Ignore Inactive | Ignore Inactive Forms | Boolean | True |
  > | Form OID Exclusions | List of Form OIDs to exclude, one per line.<br>Use wildcards to exclude Form OIDs starting or ending with characters, e.g.<br>FORM*<br>*DAT<br>or regular expressions for more complex pattern matching (see help for more information)<br>^FORM.*DAT$ | Textarea |  |

- **ID:** 0146

  **Name:** Matrices should not have overlapping Folder/Form combinations

  **Description:** When a Folder/Form combination is included in more than one Matrix the Form may be merged by one Matrix and unmerged by another.

  > | Name | Description | Setting Type | Default Value |
  > | --- | --- | --- | --- |
  > | Ignore Inactive | Ignore Inactive Forms | Boolean | True |
  > | Matrix_Exclusions | List of Matrices to exclude, one per line.<br>Use wildcards to exclude Matrix OIDs starting or ending with characters, e.g.<br>*MAT<br>*DAT<br>or regular expressions for more complex pattern matching (see help for more information)<br>^MAT.*DAT$ | Textarea |  |

- **ID:** 0147

  **Name:** Identify Folder/Form combinations included in a Matrix and in an AddForm Check Action

  **Description:** When a Folder/Form combination is included in a Matrix and an AddForm Check Action, it may be merged by the Matrix and removed by the Check Action, or vice versa. Wilcard Folders in Check Actions are excluded.

  > | Name | Description | Setting Type | Default Value |
  > | --- | --- | --- | --- |
  > | Matrix_Exclusions | List of Matrices to exclude, one per line.<br>Use wildcards to exclude Matrix OIDs starting or ending with characters, e.g.<br>*MAT<br>*DAT<br>or regular expressions for more complex pattern matching (see help for more information)<br>^MAT.*DAT$ | Textarea |  |
  > | Ignore Inactive | Ignore Inactive Forms | Boolean | True |

- **ID:** 0148

  **Name:** Identify Matrices which are added or merged by more than one Check Action

  **Description:** When more than one edit check can merge the same matrix there exists a risk that a matrix can be merged by one edit check that passes and unmerged by an edit check that fails.

  > | Name | Description | Setting Type | Default Value |
  > | --- | --- | --- | --- |
  > | Matrix_Exclusions | List of Matrices to exclude, one per line.<br>Use wildcards to exclude Matrix OIDs starting or ending with characters, e.g.<br>*MAT<br>*DAT<br>or regular expressions for more complex pattern matching (see help for more information)<br>^MAT.*DAT$ | Textarea |  |
  > | Ignore Inactive | Ignore Inactive Checks. When set Inactive Checks will be excluded from results. | Boolean | True |

- **ID:** 0149

  **Name:** Identify Checks which have more than one Add or Merge Matrix Check Actions

  **Description:** Having AddMatrix and MergeMatrix actions in the same edit check risks matrix replication during migrations.

  > | Name | Description | Setting Type | Default Value |
  > | --- | --- | --- | --- |
  > | Matrix_Exclusions | List of Matrices to exclude, one per line.<br>Use wildcards to exclude Matrix OIDs starting or ending with characters, e.g.<br>*MAT<br>*DAT<br>or regular expressions for more complex pattern matching (see help for more information)<br>^MAT.*DAT$ | Textarea |  |
  > | Ignore Inactive | Ignore Inactive Checks. When set Inactive Checks will be excluded from results. | Boolean | True |

- **ID:** 0150

  **Name:** Identify Checks which have an Add or Merge Matrix Check Action on a Log Field

  **Description:** If the site inactivates any of the loglines or changes the condition of the edit to be false the matrix added by the edit will be removed. This can cause folders/forms to be removed incorrectly because of data being entered or loglines being inactivated. Instead use a custom function to determine if any of the log lines meet the condition, not just the one submitted.

  > | Name | Description | Setting Type | Default Value |
  > | --- | --- | --- | --- |
  > | Matrix_Exclusions | List of Matrices to exclude, one per line.<br>Use wildcards to exclude Matrix OIDs starting or ending with characters, e.g.<br>*MAT<br>*DAT<br>or regular expressions for more complex pattern matching (see help for more information)<br>^MAT.*DAT$ | Textarea |  |
  > | Ignore Inactive | Ignore Inactive Checks. When set Inactive Checks will be excluded from results. | Boolean | True |

- **ID:** 0151

  **Name:** Overlapping Add Form Edit Checks

  **Description:** There should be no "overlapping/clashing" AddForm Check Actions. Checks if a form is being added to the same folder (or wildcarded) via multiple Edit Checks.

  > | Name | Description | Setting Type | Default Value |
  > | --- | --- | --- | --- |
  > | Form OID Exclusions | List of Form OIDs to exclude, one per line.<br>Use wildcards to exclude Form OIDs starting or ending with characters, e.g.<br>FORM*<br>*DAT<br>or regular expressions for more complex pattern matching (see help for more information)<br>^FORM.*DAT$ | Textarea |  |
  > | Ignore Inactive | Ignore Inactive Checks. When set Inactive Checks will be excluded from results. | Boolean | True |

- **ID:** 0152

  **Name:** Approved Data Formats for Date and Time Fields

  **Description:** Data Formats for Date and Time Fields should conform to one of the formats specified in this diagnostic

  > | Name | Description | Setting Type | Default Value |
  > | --- | --- | --- | --- |
  > | Data Formats | List of Data Formats which are acceptable for date and time Fields | Textarea |  |
  > | Ignore Inactive | Ignore Inactive Fields and Fields on Inactive Forms. | Boolean | True |
  > | Field OID Exclusions | List of Field OIDs to exclude, one per line.<br>Use wildcards to exclude Field OIDs starting or ending with characters, e.g.<br>FLD*<br>*DAT<br>or regular expressions for more complex pattern matching (see help for more information)<br>^FLD.*DAT$ | Textarea |  |

- **ID:** 0153

  **Name:** Matrices with Allow Add set and no Maximum specified

  **Description:** Matrices which have Allow Add set should also have a Maximum specified

  > | Name | Description | Setting Type | Default Value |
  > | --- | --- | --- | --- |
  > | Matrix_Exclusions | List of Matrices to exclude, one per line.<br>Use wildcards to exclude Matrix OIDs starting or ending with characters, e.g.<br>*MAT<br>*DAT<br>or regular expressions for more complex pattern matching (see help for more information)<br>^MAT.*DAT$ | Textarea |  |

- **ID:** 0154

  **Name:** Checkbox Fields should not have IsRequired set

  **Description:** Checkbox Fields should not have IsRequired set

  > | Name | Description | Setting Type | Default Value |
  > | --- | --- | --- | --- |
  > | Ignore Inactive | Ignore Inactive Fields and Fields on Inactive Forms. | Boolean | True |
  > | Field OID Exclusions | List of Field OIDs to exclude, one per line.<br>Use wildcards to exclude Field OIDs starting or ending with characters, e.g.<br>FLD*<br>*DAT<br>or regular expressions for more complex pattern matching (see help for more information)<br>^FLD.*DAT$ | Textarea |  |

- **ID:** 0155

  **Name:** ePRO controls have valid settings

  **Description:** ePRO controls should be configured correctly. The list of rules this diagnostic applies can be found [here](/static/docs/diagnostic00155.html.md)

  > | Name | Description | Setting Type | Default Value |
  > | --- | --- | --- | --- |
  > | Ignore Inactive | Ignore Inactive Fields and Fields on Inactive Forms. | Boolean | True |
  > | Barcode data format length | The minimum data format required for Barcode controls. If not set, the length of the data format will not be checked. | Text |  |

- **ID:** 0156

  **Name:** ePRO Forms should be configured correctly.

  **Description:** ePRO Forms should be configured correctly. This linter checks that ePRO Forms have: \* One Timestamp control \* One or zero Form Settings controls \* Text format Fields have a maximum length of 254 \* The Form has View and/or Entry restrictions \* Fields on Anytime Enabled ePRO Forms should be Log Fields (excluding Form Availability, Calendar and NoCloudDisplay controls) \* Old controls ("Pre 2016/7") should not be used

  > | Name | Description | Setting Type | Default Value |
  > | --- | --- | --- | --- |
  > | Ignore Inactive | Ignore Inactive Forms | Boolean | True |

- **ID:** 0157

  **Name:** All Visible=False fields should have an edit check that makes them visible.

  **Description:** This Diagnostic ignores inactive Fields and Fields on inactive Forms. If a Field is set to be invisible then there should be an Active Edit Check which sets this Field or Variable to Visible with a SetDataPointVisible (TRUE) Check Action. If there is no Check Action this Diagnostic tries to identify Custom Functions that reference the Field or Variable and modify IsVisible attributes but this is not 100% reliable.

  > | Name | Description | Setting Type | Default Value |
  > | --- | --- | --- | --- |
  > | Field OID Exclusions | List of Field OIDs to exclude, one per line.<br>Use wildcards to exclude Field OIDs starting or ending with characters, e.g.<br>FLD*<br>*DAT<br>or regular expressions for more complex pattern matching (see help for more information)<br>^FLD.*DAT$ | Textarea |  |
  > | Form OID Exclusions | List of Form OIDs to exclude, one per line.<br>Use wildcards to exclude Form OIDs starting or ending with characters, e.g.<br>FORM*<br>*DAT<br>or regular expressions for more complex pattern matching (see help for more information)<br>^FORM.*DAT$ | Textarea |  |
  > | Auto-accept Custom Function Findings | When enabled, findings are not reported if a Custom Function potentially handles field visibility. Default is False to maintain backwards compatibility. | Boolean | False |

- **ID:** 0158

  **Name:** Inactive Derivations

  **Description:** Inactive Derivations. Fix will delete the Derivation.

  > | Name | Description | Setting Type | Default Value |
  > | --- | --- | --- | --- |
  > | Derivation exclusions | List of Derivations to exclude, one per line.<br>Use wildcards to exclude Derivation Names starting or ending with characters, e.g.<br>Z*<br>*STD<br>or regular expressions for more complex pattern matching (see help for more information)<br>^Z.*STD$ | Textarea |  |

- **ID:** 0159

  **Name:** Inactive Checks

  **Description:** Inactive Checks. Fix will delete the Check.

  > | Name | Description | Setting Type | Default Value |
  > | --- | --- | --- | --- |
  > | Check_Exclusions | List of Checks to exclude, one per line.<br>Use wildcards to exclude Check Names starting or ending with characters, e.g.<br>CHK*<br>*STD<br>or regular expressions for more complex pattern matching (see help for more information)<br>^CHK.*STD$ | Textarea |  |

- **ID:** 0160

  **Name:** Inactive Fields

  **Description:** Inactive Fields. Fix will delete the Field.

  > | Name | Description | Setting Type | Default Value |
  > | --- | --- | --- | --- |
  > | Field OID Exclusions | List of Field OIDs to exclude, one per line.<br>Use wildcards to exclude Field OIDs starting or ending with characters, e.g.<br>FLD*<br>*DAT<br>or regular expressions for more complex pattern matching (see help for more information)<br>^FLD.*DAT$ | Textarea |  |

- **ID:** 0161

  **Name:** Static values in Check Steps cannot be longer than 50 characters

  **Description:** If the number of characters in a Static Value in a Check Step exceeds 50 characters then Rave Architect will show an error, regardless of the DataFormat.

- **ID:** 0162

  **Name:** Static values in Derivation Steps cannot be longer than 256 characters

  **Description:** If the number of characters in a Static Value in a Derivation Step exceeds 256 characters then Rave Architect will show an error, regardless of the DataFormat.

- **ID:** 0163

  **Name:** Defaulted Fields should be Entry Restricted to a set of EDC Roles

  **Description:** When a Field is defaulted it should be Entry Restricted to all Roles in this set of EDC Roles - either by Form Entry Restriction or Field Entry Restriction or a combination of the two. If no Roles are selected then this Diagnostic does nothing. Derived Fields are not included in findings.

  > | Name | Description | Setting Type | Default Value |
  > | --- | --- | --- | --- |
  > | Role Names | List of EDC Roles which must all be entry restricted to fields with default values | EDCRole |  |
  > | Ignore Inactive | Ignore Inactive Forms and Fields | Boolean | True |
  > | Field OID Exclusions | List of Field OIDs to exclude, one per line.<br>Use wildcards to exclude Field OIDs starting or ending with characters, e.g.<br>FLD*<br>*DAT<br>or regular expressions for more complex pattern matching (see help for more information)<br>^FLD.*DAT$ | Textarea |  |
  > | Form OID Exclusions | List of Form OIDs to exclude, one per line.<br>Use wildcards to exclude Form OIDs starting or ending with characters, e.g.<br>FORM*<br>*DAT<br>or regular expressions for more complex pattern matching (see help for more information)<br>^FORM.*DAT$ | Textarea |  |

- **ID:** 0168

  **Name:** Limit the number of fields on a form

  **Description:** Medidata best practice is to have less than 60 fields on a Form to reduce user scrolling and the number of possible edit checks on a form which could impact performance. See Medidata online help.

  > | Name | Description | Setting Type | Default Value |
  > | --- | --- | --- | --- |
  > | Field count threshold | A Form should have no more than this many fields | Text | 60 |
  > | Form OID Exclusions | List of Form OIDs to exclude, one per line.<br>Use wildcards to exclude Form OIDs starting or ending with characters, e.g.<br>FORM*<br>*DAT<br>or regular expressions for more complex pattern matching (see help for more information)<br>^FORM.*DAT$ | Textarea |  |
  > | Ignore_Labels | Ignore Fields with no VariableOID? | Boolean | True |
  > | Ignore Inactive | Ignore Inactive Forms | Boolean | True |
  > | Ignore Inactive Fields | Ignore Inactive Fields on forms | Boolean | True |

- **ID:** 0169

  **Name:** Fields which have lab analytes assigned should have a numeric format

  **Description:** Typically analyte fields have a set format unless they are related to dictionary fields. If the format is too short then entered data will be non-conformant. If data formats are set as text then ranges cannot work. Note that this diagnostic ignores fields with an associated Data Dictionary.

  > | Name | Description | Setting Type | Default Value |
  > | --- | --- | --- | --- |
  > | Ignore Inactive | Ignore Inactive Fields and Fields on Inactive Forms. | Boolean | True |
  > | Form OID Exclusions | List of Form OIDs to exclude, one per line.<br>Use wildcards to exclude Form OIDs starting or ending with characters, e.g.<br>FORM*<br>*DAT<br>or regular expressions for more complex pattern matching (see help for more information)<br>^FORM.*DAT$ | Textarea |  |
  > | Field OID Exclusions | List of Field OIDs to exclude, one per line.<br>Use wildcards to exclude Field OIDs starting or ending with characters, e.g.<br>FLD*<br>*DAT<br>or regular expressions for more complex pattern matching (see help for more information)<br>^FLD.*DAT$ | Textarea |  |
  > | Expected data format | The expected numeric data format, leave blank to allow any numeric format. | Text |  |
  > | Ignore dictionary fields with non-numeric formats? | Select this option to ignore fields related to data dictionaries which do not meet the numeric format criteria | Boolean | False |

- **ID:** 0170

  **Name:** Find placeholders in Field PreText Values

  **Description:** It is common to include placeholder text in Field PreTexts which should be substituted in a study. This diagnostic helps you find Fields with those placeholder values

  > | Name | Description | Setting Type | Default Value |
  > | --- | --- | --- | --- |
  > | Ignore Inactive | Ignore Inactive Fields and Fields on Inactive Forms. | Boolean | True |
  > | Form OID Exclusions | List of Form OIDs to exclude, one per line.<br>Use wildcards to exclude Form OIDs starting or ending with characters, e.g.<br>FORM*<br>*DAT<br>or regular expressions for more complex pattern matching (see help for more information)<br>^FORM.*DAT$ | Textarea |  |
  > | Field OID Exclusions | List of Field OIDs to exclude, one per line.<br>Use wildcards to exclude Field OIDs starting or ending with characters, e.g.<br>FLD*<br>*DAT<br>or regular expressions for more complex pattern matching (see help for more information)<br>^FLD.*DAT$ | Textarea |  |
  > | Placeholders | A list of placeholder strings, one per line, that should be reported if found in the field Pretext. You can also enter a regular expression to match which must start with ^ and end with $ to be identified as a regular expression. | Textarea |  |
  > | Perform all tests on lowercased version of the PreText? | To make the tests case insensitive, use all lowercase placeholders and select this option to compare against a lowercased version of the field pretext. | Boolean | False |

- **ID:** 0171

  **Name:** Fields which have an Analyte name should NOT have Prompt for Clinical Significance set

  **Description:** Fields which have an Analyte name should NOT have Prompt for Clinical Significance set. Note: Fix will set Prompt for Clinical Significance = False. See Diagnostic 130 for a version of this diagnostic which checks that Prompt for Clinical Significance is set for Analyte fields.

  > | Name | Description | Setting Type | Default Value |
  > | --- | --- | --- | --- |
  > | Ignore Inactive | Ignore Inactive Fields and Fields on Inactive Forms. | Boolean | True |
  > | Field OID Exclusions | List of Field OIDs to exclude, one per line.<br>Use wildcards to exclude Field OIDs starting or ending with characters, e.g.<br>FLD*<br>*DAT<br>or regular expressions for more complex pattern matching (see help for more information)<br>^FLD.*DAT$ | Textarea |  |

- **ID:** 0172

  **Name:** Fields which have an Analyte name may only have a Control Type of Text or DropDownList

  **Description:** Fields which have an Analyte name may only have a Control Type of Text or DropDownList

  > | Name | Description | Setting Type | Default Value |
  > | --- | --- | --- | --- |
  > | Ignore Inactive | Ignore Inactive Fields and Fields on Inactive Forms. | Boolean | True |
  > | Form OID Exclusions | List of Form OIDs to exclude, one per line.<br>Use wildcards to exclude Form OIDs starting or ending with characters, e.g.<br>FORM*<br>*DAT<br>or regular expressions for more complex pattern matching (see help for more information)<br>^FORM.*DAT$ | Textarea |  |
  > | Field OID Exclusions | List of Field OIDs to exclude, one per line.<br>Use wildcards to exclude Field OIDs starting or ending with characters, e.g.<br>FLD*<br>*DAT<br>or regular expressions for more complex pattern matching (see help for more information)<br>^FLD.*DAT$ | Textarea |  |

- **ID:** 0173

  **Name:** Fields which have an Analyte name must not have a fixed unit specified. Fix will remove the fixed unit

  **Description:** Fields which have an Analyte name must not have a fixed unit specified. Fix will remove the fixed unit.

  > | Name | Description | Setting Type | Default Value |
  > | --- | --- | --- | --- |
  > | Ignore Inactive | Ignore Inactive Fields and Fields on Inactive Forms. | Boolean | True |
  > | Form OID Exclusions | List of Form OIDs to exclude, one per line.<br>Use wildcards to exclude Form OIDs starting or ending with characters, e.g.<br>FORM*<br>*DAT<br>or regular expressions for more complex pattern matching (see help for more information)<br>^FORM.*DAT$ | Textarea |  |
  > | Field OID Exclusions | List of Field OIDs to exclude, one per line.<br>Use wildcards to exclude Field OIDs starting or ending with characters, e.g.<br>FLD*<br>*DAT<br>or regular expressions for more complex pattern matching (see help for more information)<br>^FLD.*DAT$ | Textarea |  |

- **ID:** 0174

  **Name:** Fields which have an Analyte name should not use Data Dictionaries with Specify options

  **Description:** A Data Dictionary mapped to an analyte field must not use the Specify option since this is not supported functionality

  > | Name | Description | Setting Type | Default Value |
  > | --- | --- | --- | --- |
  > | Ignore Inactive | Ignore Inactive Fields and Fields on Inactive Forms. | Boolean | True |
  > | Form OID Exclusions | List of Form OIDs to exclude, one per line.<br>Use wildcards to exclude Form OIDs starting or ending with characters, e.g.<br>FORM*<br>*DAT<br>or regular expressions for more complex pattern matching (see help for more information)<br>^FORM.*DAT$ | Textarea |  |
  > | Field OID Exclusions | List of Field OIDs to exclude, one per line.<br>Use wildcards to exclude Field OIDs starting or ending with characters, e.g.<br>FLD*<br>*DAT<br>or regular expressions for more complex pattern matching (see help for more information)<br>^FLD.*DAT$ | Textarea |  |

- **ID:** 0175

  **Name:** Fields which have an Analyte name should not appear on mixed Forms with log and non-log fields

  **Description:** Fields which have an Analyte name should not appear on mixed Forms with log and non-log fields

  > | Name | Description | Setting Type | Default Value |
  > | --- | --- | --- | --- |
  > | Ignore Inactive | Ignore Inactive Fields and Fields on Inactive Forms. | Boolean | True |
  > | Form OID Exclusions | List of Form OIDs to exclude, one per line.<br>Use wildcards to exclude Form OIDs starting or ending with characters, e.g.<br>FORM*<br>*DAT<br>or regular expressions for more complex pattern matching (see help for more information)<br>^FORM.*DAT$ | Textarea |  |
  > | Field OID Exclusions | List of Field OIDs to exclude, one per line.<br>Use wildcards to exclude Field OIDs starting or ending with characters, e.g.<br>FLD*<br>*DAT<br>or regular expressions for more complex pattern matching (see help for more information)<br>^FLD.*DAT$ | Textarea |  |

- **ID:** 0176

  **Name:** Forms should not have Confirm Save set.

  **Description:** Rave has 4 settings for Save Confirmation - No Confirmation (Save Confirm checkbox unchecked), No Link, Link Next and Link Custom. This Diagnostic checks that it is set to "No Confirmation". Fixing a deviation will set to the Form to "No Confirmation" To Enforce a particular Confirmation Style see Diagnostic 74. To enforce that the Save Confirm checkbox is checked see Diagnostic 114.

  > | Name | Description | Setting Type | Default Value |
  > | --- | --- | --- | --- |
  > | Ignore Inactive | Ignore Inactive Forms | Boolean | True |
  > | Form OID Exclusions | List of Form OIDs to exclude, one per line.<br>Use wildcards to exclude Form OIDs starting or ending with characters, e.g.<br>FORM*<br>*DAT<br>or regular expressions for more complex pattern matching (see help for more information)<br>^FORM.*DAT$ | Textarea |  |

- **ID:** 0179

  **Name:** Double Spaces in Text Fields

  **Description:** Identifies double spaces (consecutive spaces) in Form Names and HelpText, Folder Names, Field labels (PreText, HelpText, HeaderText, SASLabel), and Edit Check Actions (ActionString, ActionHeader). Double spaces can cause inconsistent formatting and display issues. The Fix will replace double spaces with single spaces.

  > | Name | Description | Setting Type | Default Value |
  > | --- | --- | --- | --- |
  > | Ignore Inactive | Ignore Inactive Fields, Fields on Inactive Forms, and Inactive Edit Checks. | Boolean | True |
  > | Form OID Exclusions | List of Form OIDs to exclude, one per line.<br>Use wildcards to exclude Form OIDs starting or ending with characters, e.g.<br>FORM*<br>*DAT<br>or regular expressions for more complex pattern matching (see help for more information)<br>^FORM.*DAT$ | Textarea |  |
  > | Field OID Exclusions | List of Field OIDs to exclude, one per line.<br>Use wildcards to exclude Field OIDs starting or ending with characters, e.g.<br>FLD*<br>*DAT<br>or regular expressions for more complex pattern matching (see help for more information)<br>^FLD.*DAT$ | Textarea |  |
  > | Folder OID Exclusions | List of Folder OIDs to exclude, one per line.<br>Use wildcards to exclude Folder OIDs starting or ending with characters, e.g.<br>FLDR*<br>*SCREEN<br>or regular expressions for more complex pattern matching (see help for more information)<br>^FLDR.*SCREEN$ | Textarea |  |
  > | Check_Exclusions | List of Checks to exclude, one per line.<br>Use wildcards to exclude Check Names starting or ending with characters, e.g.<br>CHK*<br>*STD<br>or regular expressions for more complex pattern matching (see help for more information)<br>^CHK.*STD$ | Textarea |  |

- **ID:** 0181

  **Name:** Similar Field Labels

  **Description:** Groups field labels (PreText) by similarity and flags groups where the original text differs. This helps enforce consistent labeling across a draft. For example, "If other, specify" vs "If other, Specify" vs "If other,specify" would be flagged as inconsistent.

  > | Name | Description | Setting Type | Default Value |
  > | --- | --- | --- | --- |
  > | Ignore Inactive | Ignore Inactive Fields and Fields on Inactive Forms. | Boolean | True |
  > | Field OID Exclusions | List of Field OIDs to exclude, one per line.<br>Use wildcards to exclude Field OIDs starting or ending with characters, e.g.<br>FLD*<br>*DAT<br>or regular expressions for more complex pattern matching (see help for more information)<br>^FLD.*DAT$ | Textarea |  |
  > | Form OID Exclusions | List of Form OIDs to exclude, one per line.<br>Use wildcards to exclude Form OIDs starting or ending with characters, e.g.<br>FORM*<br>*DAT<br>or regular expressions for more complex pattern matching (see help for more information)<br>^FORM.*DAT$ | Textarea |  |
  > | Similarity Threshold | Similarity threshold for fuzzy matching (0.0-1.0). Labels with a similarity ratio at or above this threshold will be grouped together. Default is 0.8. Set to 1.0 to disable fuzzy merging and only match exact normalized labels. | Text | 0.8 |
  > | Minimum Group Size | Minimum number of fields in a group before findings are reported. Default is 2. | Text | 2 |

- **ID:** 0182

  **Name:** Similar Query Messages

  **Description:** Groups query messages (ActionString on OpenQuery actions) by similarity and flags groups where the original text differs. This helps enforce consistent query messages across a draft. For example, "Please correct" vs "Please Correct" vs "Please correct" would be flagged as inconsistent.

  > | Name | Description | Setting Type | Default Value |
  > | --- | --- | --- | --- |
  > | Ignore Inactive | Ignore Inactive Checks. When set Inactive Checks will be excluded from results. | Boolean | True |
  > | Check_Exclusions | List of Checks to exclude, one per line.<br>Use wildcards to exclude Check Names starting or ending with characters, e.g.<br>CHK*<br>*STD<br>or regular expressions for more complex pattern matching (see help for more information)<br>^CHK.*STD$ | Textarea |  |
  > | Similarity Threshold | Similarity threshold for fuzzy matching (0.0-1.0). Query messages with a similarity ratio at or above this threshold will be grouped together. Default is 0.8. Set to 1.0 to disable fuzzy merging and only match exact normalized messages. | Text | 0.8 |
  > | Minimum Group Size | Minimum number of checks in a group before findings are reported. Default is 2. | Text | 2 |

- **ID:** 0183

  **Name:** Similar Item Labels

  **Description:** Groups Veeva Item labels by similarity and flags groups where the original text differs. This helps enforce consistent labeling across items in a draft. For example, "If other, specify" vs "If other, Specify" vs "If other,specify" would be flagged as inconsistent.

  > | Name | Description | Setting Type | Default Value |
  > | --- | --- | --- | --- |
  > | Item Name Exclusions | List of Item Names to exclude, one per line.<br>Use wildcards to exclude Item Names starting or ending with characters, e.g.<br>ITEM*<br>*TEST<br>or regular expressions for more complex pattern matching (see help for more information)<br>^ITEM.*TEST$ | Textarea |  |
  > | Similarity Threshold | Similarity threshold for fuzzy matching (0.0-1.0). Item labels with a similarity ratio at or above this threshold will be grouped together. Default is 0.8. Set to 1.0 to disable fuzzy merging and only match exact normalized labels. | Text | 0.8 |
  > | Minimum Group Size | Minimum number of items in a group before findings are reported. Default is 2. | Text | 2 |

- **ID:** 0184

  **Name:** Similar Rule Query Messages

  **Description:** Groups Veeva Rule query messages by similarity and flags groups where the original text differs. This helps enforce consistent query messages across rules in a draft. Only considers rules with Action set to "Open Query".

  > | Name | Description | Setting Type | Default Value |
  > | --- | --- | --- | --- |
  > | Rule Name Exclusions | List of Rule Names to exclude, one per line.<br>Use wildcards to exclude Rule Names starting or ending with characters, e.g.<br>RULE*<br>*TEST<br>or regular expressions for more complex pattern matching (see help for more information)<br>^RULE.*TEST$ | Textarea |  |
  > | Similarity Threshold | Similarity threshold for fuzzy matching (0.0-1.0). Query messages with a similarity ratio at or above this threshold will be grouped together. Default is 0.8. Set to 1.0 to disable fuzzy merging and only match exact normalized messages. | Text | 0.8 |
  > | Minimum Group Size | Minimum number of rules in a group before findings are reported. Default is 2. | Text | 2 |

- **ID:** 0185

  **Name:** Similar Field Help Text

  **Description:** Groups field HelpText by similarity and flags groups where the original text differs. This helps enforce consistent help text across a draft. For example, "Enter the date of the visit" vs "Enter the Date of the visit" would be flagged as inconsistent.

  > | Name | Description | Setting Type | Default Value |
  > | --- | --- | --- | --- |
  > | Ignore Inactive | Ignore Inactive Fields and Fields on Inactive Forms. | Boolean | True |
  > | Field OID Exclusions | List of Field OIDs to exclude, one per line.<br>Use wildcards to exclude Field OIDs starting or ending with characters, e.g.<br>FLD*<br>*DAT<br>or regular expressions for more complex pattern matching (see help for more information)<br>^FLD.*DAT$ | Textarea |  |
  > | Form OID Exclusions | List of Form OIDs to exclude, one per line.<br>Use wildcards to exclude Form OIDs starting or ending with characters, e.g.<br>FORM*<br>*DAT<br>or regular expressions for more complex pattern matching (see help for more information)<br>^FORM.*DAT$ | Textarea |  |
  > | Similarity Threshold | Similarity threshold for fuzzy matching (0.0-1.0). Help text with a similarity ratio at or above this threshold will be grouped together. Default is 0.8. Set to 1.0 to disable fuzzy merging and only match exact normalized text. | Text | 0.8 |
  > | Minimum Group Size | Minimum number of fields in a group before findings are reported. Default is 2. | Text | 2 |

- **ID:** 0186

  **Name:** Veeva ItemGroup Header Visible and Visual Group Selected

  **Description:** Veeva ItemGroups where Header Visible or Visual Group is not set to Yes will not render their header or visually group their items in the data-entry UI. This diagnostic flags ItemGroups where either property is set to a value other than Yes. The LBHEADER ItemGroup is excluded by default since Veeva auto-creates it when local labs are enabled.

  > | Name | Description | Setting Type | Default Value |
  > | --- | --- | --- | --- |
  > | Item Group Name Exclusions | List of Item Group Names to exclude, one per line.<br>Use wildcards to exclude Item Group Names starting or ending with characters, e.g.<br>IG_*<br>*_TEST<br>or regular expressions for more complex pattern matching (see help for more information)<br>^IG_.*_TEST$ | Textarea | LBHEADER |

- **ID:** 0187

  **Name:** Veeva Item Codelist Control Type

  **Description:** Veeva Items with a Codelist should use a Control Type appropriate for the codelist size. Picklist is required when the codelist has more than 6 entries; Radio Buttons - Horizontal is unsuitable when the codelist has more than 3 entries.

  > | Name | Description | Setting Type | Default Value |
  > | --- | --- | --- | --- |
  > | Item Name Exclusions | List of Item Names to exclude from being flagged, one per line.<br>Use wildcards to exclude Item Names starting or ending with characters, e.g.<br>ITEM_*<br>*_TEST<br>or regular expressions for more complex pattern matching (see help for more information)<br>^ITEM_.*$ | Textarea |  |

- **ID:** 0188

  **Name:** Veeva Form Radio Button Layout Consistency

  **Description:** Within a Veeva Form, Items that use a Radio Button control type should all use the same orientation (Horizontal or Vertical) when they share a Codelist of the same size. This diagnostic groups Items by Codelist entry count within the Form and flags Items whose orientation does not match the majority of their bucket, with Vertical winning ties. Radio Items without a Codelist reference are skipped.

  > | Name | Description | Setting Type | Default Value |
  > | --- | --- | --- | --- |
  > | Form Name Exclusions | List of Form Names to exclude from being flagged, one per line.<br>Use wildcards to exclude Form Names starting or ending with characters, e.g.<br>FORM_*<br>*_TEST<br>or regular expressions for more complex pattern matching (see help for more information)<br>^FORM_.*_TEST$ | Textarea |  |
  > | Item Name Exclusions | List of Item Names to exclude from being flagged, one per line.<br>Use wildcards to exclude Item Names starting or ending with characters, e.g.<br>ITEM_*<br>*_TEST<br>or regular expressions for more complex pattern matching (see help for more information)<br>^ITEM_.*$ | Textarea |  |

- **ID:** 0189

  **Name:** Veeva Similar Codelists Should Have Consistent Control Type

  **Description:** When two or more Veeva codelists have identical entries (same Choice Codes and Labels), the Items that reference them should use the same Control Type. This diagnostic flags Items whose Control Type does not match the most-used valid type across the group of similar codelists, where Picklist beats Vertical beats Horizontal on ties.

  > | Name | Description | Setting Type | Default Value |
  > | --- | --- | --- | --- |
  > | Codelist Name Exclusions | List of Codelist Names to exclude from being flagged, one per line.<br>Use wildcards to exclude Codelist Names starting or ending with characters, e.g.<br>NY_*<br>*_TEST<br>or regular expressions for more complex pattern matching (see help for more information)<br>^NY_.*$ | Textarea |  |
  > | Item Name Exclusions | List of Item Names to exclude from being flagged, one per line.<br>Use wildcards to exclude Item Names starting or ending with characters, e.g.<br>ITEM_*<br>*_TEST<br>or regular expressions for more complex pattern matching (see help for more information)<br>^ITEM_.*$ | Textarea |  |

- **ID:** 0190

  **Name:** Veeva Item Name Length

  **Description:** Flags Veeva Items whose Item Name is longer than the configured threshold. Long Item Names cause problems in downstream exports and analytics tools that have stricter length budgets. The fix prompts for a replacement name; there is no autofix because the diagnostic cannot choose a shorter name automatically. Veeva-auto-created lab Items (LBNRIND\_\*, LBTEST\_\*, LBCLSIG\_\*, LBORRES\_\*, LBORNRLO\_\*, LBORNRHI\_\*, LBOVRDNRLO\_\*, LBOVRDNRHI\_\*) are excluded by default since their names always exceed 8 characters.

  > | Name | Description | Setting Type | Default Value |
  > | --- | --- | --- | --- |
  > | Maximum Item Name Length | Item Names longer than this many characters will be flagged. Default is 8. | Text | 8 |
  > | Item Name Exclusions | List of Item Names to exclude from being flagged, one per line.<br>Use wildcards to exclude Item Names starting or ending with characters, e.g.<br>ITEM_*<br>*_TEST<br>or regular expressions for more complex pattern matching (see help for more information)<br>^ITEM_.*$ | Textarea | LBNRIND_* LBTEST_* LBCLSIG_* LBORRES_* LBORNRLO_* LBORNRHI_* LBOVRDNRLO_* LBOVRDNRHI_* |

- **ID:** 0191

  **Name:** Veeva Date Items Should Set No Future Date

  **Description:** Veeva Items with Data Type Date or Date/Time should normally have 'No Future Date' set to Yes so Vault queries values that are in the future. This diagnostic flags Date and Date/Time Items whose 'No Future Date' is blank or No, with an autofix that sets it to Yes.

  > | Name | Description | Setting Type | Default Value |
  > | --- | --- | --- | --- |
  > | Item Name Exclusions | List of Item Names to exclude from being flagged, one per line.<br>Use wildcards to exclude Item Names starting or ending with characters, e.g.<br>ITEM_*<br>*_TEST<br>or regular expressions for more complex pattern matching (see help for more information)<br>^ITEM_.*$ | Textarea |  |

- **ID:** 0192

  **Name:** Veeva Item Length Should Match Codelist Code Length

  **Description:** When a Veeva Item references a Codelist, the Item's Length should equal the maximum length (in characters) of the Choice Codes in that Codelist. This diagnostic flags Items whose Length does not match, with an autofix that sets Length to the correct value.

  > | Name | Description | Setting Type | Default Value |
  > | --- | --- | --- | --- |
  > | Codelist Name Exclusions | List of Codelist Names to exclude from being flagged, one per line.<br>Use wildcards to exclude Codelist Names starting or ending with characters, e.g.<br>NY_*<br>*_TEST<br>or regular expressions for more complex pattern matching (see help for more information)<br>^NY_.*$ | Textarea |  |
  > | Item Name Exclusions | List of Item Names to exclude from being flagged, one per line.<br>Use wildcards to exclude Item Names starting or ending with characters, e.g.<br>ITEM_*<br>*_TEST<br>or regular expressions for more complex pattern matching (see help for more information)<br>^ITEM_.*$ | Textarea |  |

- **ID:** 0193

  **Name:** Veeva Items Should Have Required Set

  **Description:** Veeva data Items (Data Type Codelist, Date, Date/Time, Number, Text, or Unit) should normally have 'Required' set to Yes so users must enter a value. This diagnostic flags such Items whose 'Required' is blank or No, skipping any Item where Read-only or Derived is Yes. The autofix sets 'Required' to Yes.

  > | Name | Description | Setting Type | Default Value |
  > | --- | --- | --- | --- |
  > | Item Name Exclusions | List of Item Names to exclude from being flagged, one per line.<br>Use wildcards to exclude Item Names starting or ending with characters, e.g.<br>ITEM_*<br>*_TEST<br>or regular expressions for more complex pattern matching (see help for more information)<br>^ITEM_.*$ | Textarea |  |

- **ID:** 0194

  **Name:** Veeva Forms in Multiple Events Should Have Consistent Order

  **Description:** When a Veeva Form is reused across multiple Events, the order of Forms within each Event should be consistent. This diagnostic identifies Form pairs whose relative order differs across Events, then reports one finding per Event on the minority side of any disagreement (or both sides on a tie), listing the Forms whose position differs from the rest of the study. No autofix is provided because the correct order requires human judgement.

  > | Name | Description | Setting Type | Default Value |
  > | --- | --- | --- | --- |
  > | Form Name Exclusions | List of Form Names to exclude from being flagged, one per line.<br>Use wildcards to exclude Form Names starting or ending with characters, e.g.<br>FORM_*<br>*_TEST<br>or regular expressions for more complex pattern matching (see help for more information)<br>^FORM_.*_TEST$ | Textarea |  |

- **ID:** 0195

  **Name:** Veeva Measurement Items Should Have Appropriate Unit Codelist

  **Description:** When a Veeva Item is named or labelled as a known clinical measurement, the Item Group containing it should carry a unit signal — an attached Unit Codelist, a Hint Label unit, a parenthetical unit in the Label (e.g. "Heart Rate (beats/min)"), or a sibling Item with a Unit Codelist (e.g. TEMP + TEMPUNIT). This diagnostic classifies each Number or Unit Item against the recognised concepts and flags those whose Item Group has no matching unit signal anywhere. Recognised measurements: Height, Weight, BMI, Body temperature, Heart rate / pulse, Respiratory rate, Systolic blood pressure, Diastolic blood pressure, Oxygen saturation, Waist circumference, Hip circumference, Head circumference, Age, Estimated GFR / renal clearance, Glucose, Body surface area, Cardiac output, Viral load, Caloric intake, ECG interval / duration.

  > | Name | Description | Setting Type | Default Value |
  > | --- | --- | --- | --- |
  > | Item Name Exclusions | List of Item Names to exclude from being flagged, one per line.<br>Use wildcards to exclude Item Names starting or ending with characters, e.g.<br>ITEM_*<br>*_TEST<br>or regular expressions for more complex pattern matching (see help for more information)<br>^ITEM_.*$ | Textarea |  |
  > | Measurement Concept Exclusions | List of measurement concept IDs to exclude from being flagged, one per line, case insensitive.<br>Recognised IDs are HEIGHT, WEIGHT, BMI, TEMP, HEARTRATE, RESPRATE, BP_SYSTOLIC, BP_DIASTOLIC, OXYGEN_SAT, WAIST, HIP, HEAD_CIRC, AGE, GFR, GLUCOSE, BSA, CARDIAC_OUTPUT, VIRAL_LOAD, CALORIC_INTAKE, ECG_INTERVAL.<br>Example:<br>BMI<br>AGE | Textarea |  |

- **ID:** 0196

  **Name:** Veeva Measurement Items Should Have Plausible Length, Precision and Range

  **Description:** When a Veeva Item classifies as a known clinical measurement, its Length, Decimal, Min Value and Max Value should fall within the plausible envelope for that measurement. This diagnostic flags Items whose configured envelope is implausible. When the Item's own Unit Codelist (Pattern B) or a sibling Item's Unit Codelist (Pattern A, e.g. TEMP + TEMPUNIT) resolves to a single recognised unit, the per-unit envelope applies; otherwise a permissive union across all recognised units is used. Recognised measurements: Height, Weight, BMI, Body temperature, Heart rate / pulse, Respiratory rate, Systolic blood pressure, Diastolic blood pressure, Oxygen saturation, Waist circumference, Hip circumference, Head circumference, Age, Estimated GFR / renal clearance, Glucose, Body surface area, Cardiac output, Viral load, Caloric intake, ECG interval / duration.

  > | Name | Description | Setting Type | Default Value |
  > | --- | --- | --- | --- |
  > | Item Name Exclusions | List of Item Names to exclude from being flagged, one per line.<br>Use wildcards to exclude Item Names starting or ending with characters, e.g.<br>ITEM_*<br>*_TEST<br>or regular expressions for more complex pattern matching (see help for more information)<br>^ITEM_.*$ | Textarea |  |
  > | Measurement Concept Exclusions | List of measurement concept IDs to exclude from being flagged, one per line, case insensitive.<br>Recognised IDs are HEIGHT, WEIGHT, BMI, TEMP, HEARTRATE, RESPRATE, BP_SYSTOLIC, BP_DIASTOLIC, OXYGEN_SAT, WAIST, HIP, HEAD_CIRC, AGE, GFR, GLUCOSE, BSA, CARDIAC_OUTPUT, VIRAL_LOAD, CALORIC_INTAKE, ECG_INTERVAL.<br>Example:<br>BMI<br>AGE | Textarea |  |
  > | Length Slack (digits) | Number of extra digits allowed beyond the per-unit Length budget before flagging. Default is 1, which means an Item with Length one digit larger than the canonical maximum is allowed without flagging. Set to 0 for strict checking. | Text | 1 |
  > | Decimal Slack (digits) | Number of extra decimal digits allowed beyond the per-unit Decimal budget before flagging. Default is 1. Set to 0 for strict checking. | Text | 1 |

- **ID:** 0197

  **Name:** Veeva Unit Codelists Should Have Correct Conversion Formulas

  **Description:** When a Veeva Unit Codelist contains the units of a known clinical measurement, each non-standard entry should have a Conversion formula that maps its unit into the entry marked Standard. This diagnostic evaluates each formula at known points to derive its slope and intercept, then compares against the canonical conversion factors. The autofix rewrites incorrect formulas to the canonical form.

  > | Name | Description | Setting Type | Default Value |
  > | --- | --- | --- | --- |
  > | Codelist Name Exclusions | List of Codelist Names to exclude from being flagged, one per line.<br>Use wildcards to exclude Codelist Names starting or ending with characters, e.g.<br>NY_*<br>*_TEST<br>or regular expressions for more complex pattern matching (see help for more information)<br>^NY_.*$ | Textarea |  |
  > | Measurement Concept Exclusions | List of measurement concept IDs to exclude from being flagged, one per line, case insensitive.<br>Recognised IDs are HEIGHT, WEIGHT, BMI, TEMP, HEARTRATE, RESPRATE, BP_SYSTOLIC, BP_DIASTOLIC, OXYGEN_SAT, WAIST, HIP, HEAD_CIRC, AGE, GFR, GLUCOSE, BSA, CARDIAC_OUTPUT, VIRAL_LOAD, CALORIC_INTAKE, ECG_INTERVAL.<br>Example:<br>BMI<br>AGE | Textarea |  |
  > | Conversion Formula Tolerance (%) | Maximum relative difference (as a percentage) allowed between a customer's Conversion formula coefficients and the canonical values before flagging. Default is 1, which accepts common rounded approximations like '$value__v / 2.2' for lb to kg (0.21% off). Lower values enforce stricter matching. | Text | 1 |

- **ID:** 0198

  **Name:** Veeva External ID Should Match Name

  **Description:** Several Veeva object types carry both a Name and an External ID property, and customers commonly want the two to be identical so that identifiers stay consistent across exports and integrations. This diagnostic flags objects whose External ID is blank or differs from the object's Name across a configurable list of object types (Form, Item, Event, Event Group, Rule, Assessment, Codelist, Unit Codelist, Unit Codelist Entry). The autofix copies the Name into External ID, creating the property if missing.

  > | Name | Description | Setting Type | Default Value |
  > | --- | --- | --- | --- |
  > | Form | Check Forms whose External ID does not match Form Name. | Boolean | True |
  > | Item | Check Items whose External ID does not match Item Name. | Boolean | False |
  > | Event | Check Events whose External ID does not match Event Name. | Boolean | False |
  > | Event Group | Check Event Groups whose External ID does not match Event Group Name. | Boolean | False |
  > | Rule | Check Rules whose External ID does not match Name. | Boolean | False |
  > | Assessment | Check Assessments whose External ID does not match Name. | Boolean | False |
  > | Codelist | Check Codelists whose External ID does not match Name. | Boolean | False |
  > | Unit Codelist | Check Unit Codelists whose External ID does not match Name. | Boolean | False |
  > | Unit Codelist Entry | Check Unit Codelist Entries whose External ID does not match Choice Code. | Boolean | False |
  > | Item Group | Check Item Groups whose External ID does not match Item Group Name. | Boolean | False |

- **ID:** 0199

  **Name:** Veeva Lot/Kit/Accession Items Should Be Text

  **Description:** Veeva Items that capture lot numbers, kit numbers, or accession numbers are typically alphanumeric (leading zeros, letters, hyphens) and must be Text data type to round-trip safely. This diagnostic classifies Items by Item Name patterns and Label keywords against three categories (Lot Number, Kit Number, Accession Number) and flags any classified Item whose Data Type is not Text. The autofix sets Data Type to Text.

  > | Name | Description | Setting Type | Default Value |
  > | --- | --- | --- | --- |
  > | Item Name Exclusions | List of Item Names to exclude from being flagged, one per line.<br>Use wildcards to exclude Item Names starting or ending with characters, e.g.<br>ITEM_*<br>*_TEST<br>or regular expressions for more complex pattern matching (see help for more information)<br>^ITEM_.*$ | Textarea |  |

- **ID:** 0200

  **Name:** Veeva Con Meds Forms Should Not Collect TDD With Dose/Frequency

  **Description:** On a Veeva Concomitant Medications eCRF, dosing should be captured either as a single Total Daily Dose (TDD) or as a Dose + Frequency pair, but not all three together. This diagnostic identifies Forms classified as Concomitant Medications (by Form Name patterns such as CM, CMED, CONMED or by a Form Label keyword like 'concomitant medication') and flags any that contain at least one Item from each of the TDD, Dose, and Frequency categories. No autofix is provided because the correct view to drop requires study-design judgement.

  > | Name | Description | Setting Type | Default Value |
  > | --- | --- | --- | --- |
  > | Form Name Exclusions | List of Form Names to exclude from being flagged, one per line.<br>Use wildcards to exclude Form Names starting or ending with characters, e.g.<br>FORM_*<br>*_TEST<br>or regular expressions for more complex pattern matching (see help for more information)<br>^FORM_.*_TEST$ | Textarea |  |

- **ID:** 0202

  **Name:** Veeva Codelist Items With An Other Choice Should Have A Specify Item

  **Description:** When a Veeva Codelist offers an "Other" choice, the form normally has a Text Item to capture what the other value is. This diagnostic flags Codelist Items whose Codelist has an Other choice but no such Item. An Item counts if its Controlling Item is the Codelist Item and it is shown for the Other choice, or if a specify Item with no Controlling Item of its own is in the same Item Group. No autofix is provided because the specify Item has to be designed.

  > | Name | Description | Setting Type | Default Value |
  > | --- | --- | --- | --- |
  > | Other Choice Labels | Choice Labels that identify an Other choice, one per line.<br>Use wildcards to match labels starting or ending with characters, e.g. Other*, or regular expressions starting with ^ for more complex pattern matching (see help for more information). Matching is case-insensitive.<br>The default matches Other on its own or followed by a number, punctuation or "specify", such as "Other 2", "Other, specify" and "Other (please state)", but not a term that only contains the word, such as "Other cancer". | Textarea | ^others*(d+\|[,:;(/-].*\|specify.*)?$ |
  > | Other Choice Codes | Choice Codes that identify an Other choice, one per line, in addition to the Choice Labels above.<br>Use wildcards to match codes starting or ending with characters, e.g. OTH*, or regular expressions starting with ^ for more complex pattern matching (see help for more information). Matching is case-insensitive. | Textarea | OTHER OTH ^oth(er)?d+$ |
  > | Excluded Choices | Choice Labels or Choice Codes that match the patterns above but are not an Other choice that needs a specification, one per line, e.g. a category value such as "Other (General)".<br>Use wildcards or regular expressions starting with ^ (see help for more information). Matching is case-insensitive. | Textarea | Other (General) |
  > | Specify Item Labels | Labels that identify a Text Item as a specify Item, one per line.<br>Use wildcards to match labels starting or ending with characters, e.g. Specify*, or regular expressions starting with ^ for more complex pattern matching (see help for more information). Matching is case-insensitive.<br>The default matches any label containing the word "specify". | Textarea | ^.*bspecifyb |
  > | Specify Item Names | Item Names that identify a Text Item as a specify Item, one per line, in addition to the Labels above.<br>Use wildcards to match Item Names starting or ending with characters, e.g. *_OTH, or regular expressions starting with ^ for more complex pattern matching (see help for more information). Matching is case-insensitive.<br>Avoid a pattern such as *SPEC, which also matches specimen Items such as PCSPEC. | Textarea | *_SPEC *SP *OTH *OTHER |
  > | Item Name Exclusions | List of Item Names to exclude from being flagged, one per line.<br>Use wildcards to exclude Item Names starting or ending with characters, e.g.<br>ITEM_*<br>*_TEST<br>or regular expressions for more complex pattern matching (see help for more information)<br>^ITEM_.*$ | Textarea |  |
  > | Accept Specify Items That Are Not Text | Accept an Item that is not Text but captures a value, such as a Codelist, Boolean, Number or Date, as the specify Item when its Controlling Item is the Codelist Item and it is shown for the Other choice. Label, Form Link and File Attachment Items capture no value, so are never accepted. | Boolean | True |

- **ID:** 0203

  **Name:** Veeva Specify Items Should Have A Corresponding Other Choice

  **Description:** A Veeva Text Item that captures the specification of an "Other" choice should be tied to a Codelist that has one. This diagnostic flags specify Items controlled by a Codelist Item that are not shown for that Codelist's Other choice, and specify Items with no Controlling Item where no Codelist Item in the same Item Group has an Other choice. Specify Items shown on a choice from a Codelist with no Other choice, such as "If yes, specify", are not flagged. No autofix is provided.

  > | Name | Description | Setting Type | Default Value |
  > | --- | --- | --- | --- |
  > | Other Choice Labels | Choice Labels that identify an Other choice, one per line.<br>Use wildcards to match labels starting or ending with characters, e.g. Other*, or regular expressions starting with ^ for more complex pattern matching (see help for more information). Matching is case-insensitive.<br>The default matches Other on its own or followed by a number, punctuation or "specify", such as "Other 2", "Other, specify" and "Other (please state)", but not a term that only contains the word, such as "Other cancer". | Textarea | ^others*(d+\|[,:;(/-].*\|specify.*)?$ |
  > | Other Choice Codes | Choice Codes that identify an Other choice, one per line, in addition to the Choice Labels above.<br>Use wildcards to match codes starting or ending with characters, e.g. OTH*, or regular expressions starting with ^ for more complex pattern matching (see help for more information). Matching is case-insensitive. | Textarea | OTHER OTH ^oth(er)?d+$ |
  > | Excluded Choices | Choice Labels or Choice Codes that match the patterns above but are not an Other choice that needs a specification, one per line, e.g. a category value such as "Other (General)".<br>Use wildcards or regular expressions starting with ^ (see help for more information). Matching is case-insensitive. | Textarea | Other (General) |
  > | Specify Item Labels | Labels that identify a Text Item as a specify Item, one per line.<br>Use wildcards to match labels starting or ending with characters, e.g. Specify*, or regular expressions starting with ^ for more complex pattern matching (see help for more information). Matching is case-insensitive.<br>The default matches any label containing the word "specify". | Textarea | ^.*bspecifyb |
  > | Specify Item Names | Item Names that identify a Text Item as a specify Item, one per line, in addition to the Labels above.<br>Use wildcards to match Item Names starting or ending with characters, e.g. *_OTH, or regular expressions starting with ^ for more complex pattern matching (see help for more information). Matching is case-insensitive.<br>Avoid a pattern such as *SPEC, which also matches specimen Items such as PCSPEC. | Textarea | *_SPEC *SP *OTH *OTHER |
  > | Item Name Exclusions | List of Item Names to exclude from being flagged, one per line.<br>Use wildcards to exclude Item Names starting or ending with characters, e.g.<br>ITEM_*<br>*_TEST<br>or regular expressions for more complex pattern matching (see help for more information)<br>^ITEM_.*$ | Textarea |  |

- **ID:** 0204

  **Name:** Veeva Test, Backup Or Temporary Objects

  **Description:** Identifies Veeva Forms, Events, Items, Codelists and Rules whose Name or Label contains a keyword that marks a test, backup or temporary object, such as COPY, BACKUP, DRAFT or OLD. Keywords match whole words, so OLD matches "VS\_OLD" and "Old Form" but not "Bold" or "Threshold". No autofix is provided.

  > | Name | Description | Setting Type | Default Value |
  > | --- | --- | --- | --- |
  > | Keywords | Keywords that mark a test, backup or temporary object, one per line. Matching is not case-sensitive.<br>A keyword matches a whole word, where anything other than a letter separates words, so OLD matches "VS_OLD", "OLD2" and "Old Form" but not "Bold". Add * at the start or end of a keyword to also match longer words, e.g. TEMP* matches "TEMPORARY", or start a line with ^ for a regular expression (see help for more information), e.g.<br>^test_ | Textarea | BACKUP COPY DRAFT OLD |
  > | Properties | Properties to include in the diagnostic | Property | Forms\|Form Name Forms\|Form Label Events\|Event Name Events\|Short Label Items\|Item Name Items\|Label Codelists\|Name Rules\|Name |
  > | Ignored Values | Property values that contain a keyword legitimately and should not be flagged, one per line, e.g.<br>Myocardial Infarction, Old<br>Use wildcards to ignore values starting or ending with characters, e.g. *_OLD, or regular expressions for more complex pattern matching (see help for more information). | Textarea |  |
  > | Form Name Exclusions | List of Form Names to exclude from being flagged, one per line.<br>Use wildcards to exclude Form Names starting or ending with characters, e.g.<br>FORM_*<br>*_TEST<br>or regular expressions for more complex pattern matching (see help for more information)<br>^FORM_.*_TEST$ | Textarea |  |
  > | Event Name Exclusions | List of Event Names to exclude from being flagged, one per line.<br>Use wildcards to exclude Event Names starting or ending with characters, e.g.<br>EV_*<br>*_TEST<br>or regular expressions for more complex pattern matching (see help for more information)<br>^EV_.*$ | Textarea |  |
  > | Item Name Exclusions | List of Item Names to exclude from being flagged, one per line.<br>Use wildcards to exclude Item Names starting or ending with characters, e.g.<br>ITEM_*<br>*_TEST<br>or regular expressions for more complex pattern matching (see help for more information)<br>^ITEM_.*$ | Textarea |  |
  > | Codelist Name Exclusions | List of Codelist Names to exclude from being flagged, one per line.<br>Use wildcards to exclude Codelist Names starting or ending with characters, e.g.<br>NY_*<br>*_TEST<br>or regular expressions for more complex pattern matching (see help for more information)<br>^NY_.*$ | Textarea |  |
  > | Rule Name Exclusions | List of Rule Names to exclude from being flagged, one per line.<br>Use wildcards to exclude Rule Names starting or ending with characters, e.g.<br>RULE_*<br>*_TEST<br>or regular expressions for more complex pattern matching (see help for more information)<br>^RULE_.*$ | Textarea |  |

- **ID:** 0205

  **Name:** Veeva Repeating Forms Without A Distinguishing Item

  **Description:** Identifies each Veeva Event where a Form repeats but the Form has no Item to tell one of its records from another, such as a Date or Date/Time Item or an Item whose name marks a sequence number or identifier. A Form repeats per Event, so a Form that repeats in one Event and not another is reported only for the Event where it repeats. Every Item on the Form counts, in any Item Group, including Codelist, read-only and derived Items. No autofix is provided.

  > | Name | Description | Setting Type | Default Value |
  > | --- | --- | --- | --- |
  > | Distinguishing Data Types | Item Data Types that tell one record of a repeating Form from another, one per line, e.g.<br>Date<br>Date/Time | Textarea | Date Date/Time |
  > | Distinguishing Item Names | Keywords in an Item Name that mark the Item as a sequence number or identifier, one per line. Matching is not case-sensitive.<br>A keyword matches a whole word, where anything other than a letter separates words, so ID matches "AE_ID" but not "VALID". Add * at the start or end of a keyword to also match longer words, e.g. *SEQ* matches "AESEQ", or start a line with ^ for a regular expression (see help for more information), e.g.<br>^SPID | Textarea | *SEQ* *NUM* *SPID* *REFID* ID |
  > | Form Name Exclusions | List of Form Names to exclude from being flagged, one per line.<br>Use wildcards to exclude Form Names starting or ending with characters, e.g.<br>FORM_*<br>*_TEST<br>or regular expressions for more complex pattern matching (see help for more information)<br>^FORM_.*_TEST$ | Textarea |  |
  > | Event Name Exclusions | List of Event Names to exclude from being flagged, one per line.<br>Use wildcards to exclude Event Names starting or ending with characters, e.g.<br>EV_*<br>*_TEST<br>or regular expressions for more complex pattern matching (see help for more information)<br>^EV_.*$ | Textarea |  |

- **ID:** 0206

  **Name:** Veeva Unit Codelists Not Used By Any Item

  **Description:** Identifies Unit Codelists in the Vault study that no Item uses. A Unit Codelist that is created but never used may indicate an issue in the study build. Vault leaves unused Unit Codelists out of the study design export, so the Draft must have been imported from Vault. Any Item in the Vault study counts as a use, including one that is itself unused. Lab Unit Codelists are not checked. No autofix is provided.

  > | Name | Description | Setting Type | Default Value |
  > | --- | --- | --- | --- |
  > | Unit Codelist Name Exclusions | List of Unit Codelist Names to exclude from being flagged, one per line.<br>Use wildcards to exclude Unit Codelist Names starting or ending with characters, e.g.<br>WEIGHT_*<br>*_TEST<br>or regular expressions for more complex pattern matching (see help for more information)<br>^WEIGHT_.*$ | Textarea |  |

- **ID:** 0207

  **Name:** Veeva Codelist Entries Marked Hidden

  **Description:** Highlights Veeva Codelists, including Lab Codelists, that have entries marked Hidden, listing the hidden entries of each Codelist in one finding. Hidden entries are a legitimate Vault feature but are easy to overlook in review. Codelists are checked whether or not an Item uses them, and Unit Codelist Entries are included unless the setting is turned off. No autofix is provided.

  > | Name | Description | Setting Type | Default Value |
  > | --- | --- | --- | --- |
  > | Codelist Name Exclusions | List of Codelist Names to exclude from being flagged, one per line.<br>Use wildcards to exclude Codelist Names starting or ending with characters, e.g.<br>NY_*<br>*_TEST<br>or regular expressions for more complex pattern matching (see help for more information)<br>^NY_.*$ | Textarea |  |
  > | Include Unit Codelist Entries | Also highlight Unit Codelists, including Lab Unit Codelists, that have entries marked Hidden. | Boolean | True |
  > | Unit Codelist Name Exclusions | List of Unit Codelist Names to exclude from being flagged, one per line.<br>Use wildcards to exclude Unit Codelist Names starting or ending with characters, e.g.<br>WEIGHT_*<br>*_TEST<br>or regular expressions for more complex pattern matching (see help for more information)<br>^WEIGHT_.*$ | Textarea |  |

- **ID:** V179

  **Name:** Double Spaces in Veeva Properties

  **Description:** Identifies double spaces (consecutive spaces) in Veeva Form, Item, and Rule properties. Double spaces can cause inconsistent formatting and display issues.

  > | Name | Description | Setting Type | Default Value |
  > | --- | --- | --- | --- |
  > | Properties | Properties to include in the diagnostic | Property | Forms\|Form Label Items\|Label Rules\|Query Message |
  > | Form Name Exclusions | List of Form Names to exclude, one per line.<br>Use wildcards to exclude Form Names starting or ending with characters, e.g.<br>FORM*<br>*TEST<br>or regular expressions for more complex pattern matching (see help for more information)<br>^FORM.*TEST$ | Textarea |  |
  > | Item Name Exclusions | List of Item Names to exclude, one per line.<br>Use wildcards to exclude Item Names starting or ending with characters, e.g.<br>ITEM*<br>*TEST<br>or regular expressions for more complex pattern matching (see help for more information)<br>^ITEM.*TEST$ | Textarea |  |
  > | Rule Name Exclusions | List of Rule Names to exclude, one per line.<br>Use wildcards to exclude Rule Names starting or ending with characters, e.g.<br>RULE*<br>*TEST<br>or regular expressions for more complex pattern matching (see help for more information)<br>^RULE.*TEST$ | Textarea |  |

<a id="substitution"></a>
## Substitution

Diagnostics to substitute placeholder text with study-specific values

- **ID:** 0029

  **Name:** List of words to be substituted with another word in Draft text strings

  **Description:** List of words to be substituted with another word in Draft text strings. Note that this diagnostic finds individual words, separated by whitespace and punctuation. It ignores URLs and HTML tags. To perform a string-based find and replace see Diagnostic 177.

  > | Name | Description | Setting Type | Default Value |
  > | --- | --- | --- | --- |
  > | Properties | Properties to include in the diagnostic | Property | Drafts\|Confirmation Message Drafts\|Signature Prompt Forms\|Name Forms\|Help Text Fields\|Pre Text Fields\|Header Text Fields\|Help Text Dictionary Entries\|User Data String Check Actions\|Action String Email Alerts\|Body Email Alerts\|Subject |
  > | Substitution 1 | Word to search for and to replace, separated by \| delimiter, e.g. patient\|subject | Text |  |
  > | Substitution 2 | Word to search for and to replace, separated by \| delimiter, e.g. patient\|subject | Text |  |
  > | Substitution 3 | Word to search for and to replace, separated by \| delimiter, e.g. patient\|subject | Text |  |
  > | Substitution 4 | Word to search for and to replace, separated by \| delimiter, e.g. patient\|subject | Text |  |
  > | Substitution 5 | Word to search for and to replace, separated by \| delimiter, e.g. patient\|subject | Text |  |
  > | Substitution 6 | Word to search for and to replace, separated by \| delimiter, e.g. patient\|subject | Text |  |
  > | Substitution 7 | Word to search for and to replace, separated by \| delimiter, e.g. patient\|subject | Text |  |
  > | Substitution 8 | Word to search for and to replace, separated by \| delimiter, e.g. patient\|subject | Text |  |
  > | Substitution 9 | Word to search for and to replace, separated by \| delimiter, e.g. patient\|subject | Text |  |
  > | Substitution 10 | Word to search for and to replace, separated by \| delimiter, e.g. patient\|subject | Text |  |
  > | Substitution 11 | Word to search for and to replace, separated by \| delimiter, e.g. patient\|subject | Text |  |
  > | Substitution 12 | Word to search for and to replace, separated by \| delimiter, e.g. patient\|subject | Text |  |
  > | Substitution 13 | Word to search for and to replace, separated by \| delimiter, e.g. patient\|subject | Text |  |
  > | Substitution 14 | Word to search for and to replace, separated by \| delimiter, e.g. patient\|subject | Text |  |
  > | Substitution 15 | Word to search for and to replace, separated by \| delimiter, e.g. patient\|subject | Text |  |
  > | Substitution 16 | Word to search for and to replace, separated by \| delimiter, e.g. patient\|subject | Text |  |
  > | Substitution 17 | Word to search for and to replace, separated by \| delimiter, e.g. patient\|subject | Text |  |
  > | Substitution 18 | Word to search for and to replace, separated by \| delimiter, e.g. patient\|subject | Text |  |
  > | Substitution 19 | Word to search for and to replace, separated by \| delimiter, e.g. patient\|subject | Text |  |
  > | Substitution 20 | Word to search for and to replace, separated by \| delimiter, e.g. patient\|subject | Text |  |

- **ID:** 0044

  **Name:** List of keywords to be substituted in Data Dictionary Entries

  **Description:** List of words to be substituted in Data Dictionary Entries

  > | Name | Description | Setting Type | Default Value |
  > | --- | --- | --- | --- |
  > | Keyword 1 | Keyword to search for or regular expression starting and ending in / e.g. /&lt;.*?&gt;/ to find all values surrounded by &lt; and &gt; see help for more details | Text |  |
  > | Keyword 2 | Keyword to search for or regular expression starting and ending in / e.g. /&lt;.*?&gt;/ to find all values surrounded by &lt; and &gt; see help for more details | Text |  |
  > | Keyword 3 | Keyword to search for or regular expression starting and ending in / e.g. /&lt;.*?&gt;/ to find all values surrounded by &lt; and &gt; see help for more details | Text |  |
  > | Keyword 4 | Keyword to search for or regular expression starting and ending in / e.g. /&lt;.*?&gt;/ to find all values surrounded by &lt; and &gt; see help for more details | Text |  |
  > | Keyword 5 | Keyword to search for or regular expression starting and ending in / e.g. /&lt;.*?&gt;/ to find all values surrounded by &lt; and &gt; see help for more details | Text |  |
  > | Keyword 6 | Keyword to search for or regular expression starting and ending in / e.g. /&lt;.*?&gt;/ to find all values surrounded by &lt; and &gt; see help for more details | Text |  |
  > | Keyword 7 | Keyword to search for or regular expression starting and ending in / e.g. /&lt;.*?&gt;/ to find all values surrounded by &lt; and &gt; see help for more details | Text |  |
  > | Keyword 8 | Keyword to search for or regular expression starting and ending in / e.g. /&lt;.*?&gt;/ to find all values surrounded by &lt; and &gt; see help for more details | Text |  |
  > | Keyword 9 | Keyword to search for or regular expression starting and ending in / e.g. /&lt;.*?&gt;/ to find all values surrounded by &lt; and &gt; see help for more details | Text |  |
  > | Keyword 10 | Keyword to search for or regular expression starting and ending in / e.g. /&lt;.*?&gt;/ to find all values surrounded by &lt; and &gt; see help for more details | Text |  |
  > | Keyword 11 | Keyword to search for or regular expression starting and ending in / e.g. /&lt;.*?&gt;/ to find all values surrounded by &lt; and &gt; see help for more details | Text |  |
  > | Keyword 12 | Keyword to search for or regular expression starting and ending in / e.g. /&lt;.*?&gt;/ to find all values surrounded by &lt; and &gt; see help for more details | Text |  |
  > | Keyword 13 | Keyword to search for or regular expression starting and ending in / e.g. /&lt;.*?&gt;/ to find all values surrounded by &lt; and &gt; see help for more details | Text |  |
  > | Keyword 14 | Keyword to search for or regular expression starting and ending in / e.g. /&lt;.*?&gt;/ to find all values surrounded by &lt; and &gt; see help for more details | Text |  |
  > | Keyword 15 | Keyword to search for or regular expression starting and ending in / e.g. /&lt;.*?&gt;/ to find all values surrounded by &lt; and &gt; see help for more details | Text |  |
  > | Keyword 16 | Keyword to search for or regular expression starting and ending in / e.g. /&lt;.*?&gt;/ to find all values surrounded by &lt; and &gt; see help for more details | Text |  |
  > | Keyword 17 | Keyword to search for or regular expression starting and ending in / e.g. /&lt;.*?&gt;/ to find all values surrounded by &lt; and &gt; see help for more details | Text |  |
  > | Keyword 18 | Keyword to search for or regular expression starting and ending in / e.g. /&lt;.*?&gt;/ to find all values surrounded by &lt; and &gt; see help for more details | Text |  |
  > | Keyword 19 | Keyword to search for or regular expression starting and ending in / e.g. /&lt;.*?&gt;/ to find all values surrounded by &lt; and &gt; see help for more details | Text |  |
  > | Keyword 20 | Keyword to search for or regular expression starting and ending in / e.g. /&lt;.*?&gt;/ to find all values surrounded by &lt; and &gt; see help for more details | Text |  |
  > | Keyword 21 | Keyword to search for or regular expression starting and ending in / e.g. /&lt;.*?&gt;/ to find all values surrounded by &lt; and &gt; see help for more details | Text |  |
  > | Keyword 22 | Keyword to search for or regular expression starting and ending in / e.g. /&lt;.*?&gt;/ to find all values surrounded by &lt; and &gt; see help for more details | Text |  |
  > | Keyword 23 | Keyword to search for or regular expression starting and ending in / e.g. /&lt;.*?&gt;/ to find all values surrounded by &lt; and &gt; see help for more details | Text |  |
  > | Keyword 24 | Keyword to search for or regular expression starting and ending in / e.g. /&lt;.*?&gt;/ to find all values surrounded by &lt; and &gt; see help for more details | Text |  |
  > | Keyword 25 | Keyword to search for or regular expression starting and ending in / e.g. /&lt;.*?&gt;/ to find all values surrounded by &lt; and &gt; see help for more details | Text |  |
  > | Keyword 26 | Keyword to search for or regular expression starting and ending in / e.g. /&lt;.*?&gt;/ to find all values surrounded by &lt; and &gt; see help for more details | Text |  |
  > | Keyword 27 | Keyword to search for or regular expression starting and ending in / e.g. /&lt;.*?&gt;/ to find all values surrounded by &lt; and &gt; see help for more details | Text |  |
  > | Keyword 28 | Keyword to search for or regular expression starting and ending in / e.g. /&lt;.*?&gt;/ to find all values surrounded by &lt; and &gt; see help for more details | Text |  |
  > | Keyword 29 | Keyword to search for or regular expression starting and ending in / e.g. /&lt;.*?&gt;/ to find all values surrounded by &lt; and &gt; see help for more details | Text |  |
  > | Keyword 30 | Keyword to search for or regular expression starting and ending in / e.g. /&lt;.*?&gt;/ to find all values surrounded by &lt; and &gt; see help for more details | Text |  |
  > | Keyword 31 | Keyword to search for or regular expression starting and ending in / e.g. /&lt;.*?&gt;/ to find all values surrounded by &lt; and &gt; see help for more details | Text |  |
  > | Keyword 32 | Keyword to search for or regular expression starting and ending in / e.g. /&lt;.*?&gt;/ to find all values surrounded by &lt; and &gt; see help for more details | Text |  |
  > | Keyword 33 | Keyword to search for or regular expression starting and ending in / e.g. /&lt;.*?&gt;/ to find all values surrounded by &lt; and &gt; see help for more details | Text |  |
  > | Keyword 34 | Keyword to search for or regular expression starting and ending in / e.g. /&lt;.*?&gt;/ to find all values surrounded by &lt; and &gt; see help for more details | Text |  |
  > | Keyword 35 | Keyword to search for or regular expression starting and ending in / e.g. /&lt;.*?&gt;/ to find all values surrounded by &lt; and &gt; see help for more details | Text |  |
  > | Keyword 36 | Keyword to search for or regular expression starting and ending in / e.g. /&lt;.*?&gt;/ to find all values surrounded by &lt; and &gt; see help for more details | Text |  |
  > | Keyword 37 | Keyword to search for or regular expression starting and ending in / e.g. /&lt;.*?&gt;/ to find all values surrounded by &lt; and &gt; see help for more details | Text |  |
  > | Keyword 38 | Keyword to search for or regular expression starting and ending in / e.g. /&lt;.*?&gt;/ to find all values surrounded by &lt; and &gt; see help for more details | Text |  |
  > | Keyword 39 | Keyword to search for or regular expression starting and ending in / e.g. /&lt;.*?&gt;/ to find all values surrounded by &lt; and &gt; see help for more details | Text |  |
  > | Keyword 40 | Keyword to search for or regular expression starting and ending in / e.g. /&lt;.*?&gt;/ to find all values surrounded by &lt; and &gt; see help for more details | Text |  |
  > | Keyword 41 | Keyword to search for or regular expression starting and ending in / e.g. /&lt;.*?&gt;/ to find all values surrounded by &lt; and &gt; see help for more details | Text |  |
  > | Keyword 42 | Keyword to search for or regular expression starting and ending in / e.g. /&lt;.*?&gt;/ to find all values surrounded by &lt; and &gt; see help for more details | Text |  |
  > | Keyword 43 | Keyword to search for or regular expression starting and ending in / e.g. /&lt;.*?&gt;/ to find all values surrounded by &lt; and &gt; see help for more details | Text |  |
  > | Keyword 44 | Keyword to search for or regular expression starting and ending in / e.g. /&lt;.*?&gt;/ to find all values surrounded by &lt; and &gt; see help for more details | Text |  |
  > | Keyword 45 | Keyword to search for or regular expression starting and ending in / e.g. /&lt;.*?&gt;/ to find all values surrounded by &lt; and &gt; see help for more details | Text |  |
  > | Keyword 46 | Keyword to search for or regular expression starting and ending in / e.g. /&lt;.*?&gt;/ to find all values surrounded by &lt; and &gt; see help for more details | Text |  |
  > | Keyword 47 | Keyword to search for or regular expression starting and ending in / e.g. /&lt;.*?&gt;/ to find all values surrounded by &lt; and &gt; see help for more details | Text |  |
  > | Keyword 48 | Keyword to search for or regular expression starting and ending in / e.g. /&lt;.*?&gt;/ to find all values surrounded by &lt; and &gt; see help for more details | Text |  |
  > | Keyword 49 | Keyword to search for or regular expression starting and ending in / e.g. /&lt;.*?&gt;/ to find all values surrounded by &lt; and &gt; see help for more details | Text |  |
  > | Keyword 50 | Keyword to search for or regular expression starting and ending in / e.g. /&lt;.*?&gt;/ to find all values surrounded by &lt; and &gt; see help for more details | Text |  |
  > | Data_Dictionary_Exclusions | List of Data Dictionaries to exclude, one per line.<br>Use wildcards to exclude Data Dictionary Names starting or ending with characters, e.g.<br>DD*<br>*STD<br>or regular expressions for more complex pattern matching (see help for more information)<br>^DD.*STD$ | Textarea |  |

- **ID:** 0045

  **Name:** List of words to be substituted in Draft Field Default Value

  **Description:** If a Field definition has been imported from a Global Library then it may contain text which should be substituted for Therapeutic Area or Project specific text. This Diagnostic finds identifier text strings in Field default values and substitutes them for new values.

  > | Name | Description | Setting Type | Default Value |
  > | --- | --- | --- | --- |
  > | Keyword 1 | Keyword to search for or regular expression starting and ending in / e.g. /&lt;.*?&gt;/ to find all values surrounded by &lt; and &gt; see help for more details | Text |  |
  > | Keyword 2 | Keyword to search for or regular expression starting and ending in / e.g. /&lt;.*?&gt;/ to find all values surrounded by &lt; and &gt; see help for more details | Text |  |
  > | Keyword 3 | Keyword to search for or regular expression starting and ending in / e.g. /&lt;.*?&gt;/ to find all values surrounded by &lt; and &gt; see help for more details | Text |  |
  > | Keyword 4 | Keyword to search for or regular expression starting and ending in / e.g. /&lt;.*?&gt;/ to find all values surrounded by &lt; and &gt; see help for more details | Text |  |
  > | Keyword 5 | Keyword to search for or regular expression starting and ending in / e.g. /&lt;.*?&gt;/ to find all values surrounded by &lt; and &gt; see help for more details | Text |  |
  > | Keyword 6 | Keyword to search for or regular expression starting and ending in / e.g. /&lt;.*?&gt;/ to find all values surrounded by &lt; and &gt; see help for more details | Text |  |
  > | Keyword 7 | Keyword to search for or regular expression starting and ending in / e.g. /&lt;.*?&gt;/ to find all values surrounded by &lt; and &gt; see help for more details | Text |  |
  > | Keyword 8 | Keyword to search for or regular expression starting and ending in / e.g. /&lt;.*?&gt;/ to find all values surrounded by &lt; and &gt; see help for more details | Text |  |
  > | Keyword 9 | Keyword to search for or regular expression starting and ending in / e.g. /&lt;.*?&gt;/ to find all values surrounded by &lt; and &gt; see help for more details | Text |  |
  > | Keyword 10 | Keyword to search for or regular expression starting and ending in / e.g. /&lt;.*?&gt;/ to find all values surrounded by &lt; and &gt; see help for more details | Text |  |
  > | Keyword 11 | Keyword to search for or regular expression starting and ending in / e.g. /&lt;.*?&gt;/ to find all values surrounded by &lt; and &gt; see help for more details | Text |  |
  > | Keyword 12 | Keyword to search for or regular expression starting and ending in / e.g. /&lt;.*?&gt;/ to find all values surrounded by &lt; and &gt; see help for more details | Text |  |
  > | Keyword 13 | Keyword to search for or regular expression starting and ending in / e.g. /&lt;.*?&gt;/ to find all values surrounded by &lt; and &gt; see help for more details | Text |  |
  > | Keyword 14 | Keyword to search for or regular expression starting and ending in / e.g. /&lt;.*?&gt;/ to find all values surrounded by &lt; and &gt; see help for more details | Text |  |
  > | Keyword 15 | Keyword to search for or regular expression starting and ending in / e.g. /&lt;.*?&gt;/ to find all values surrounded by &lt; and &gt; see help for more details | Text |  |
  > | Keyword 16 | Keyword to search for or regular expression starting and ending in / e.g. /&lt;.*?&gt;/ to find all values surrounded by &lt; and &gt; see help for more details | Text |  |
  > | Keyword 17 | Keyword to search for or regular expression starting and ending in / e.g. /&lt;.*?&gt;/ to find all values surrounded by &lt; and &gt; see help for more details | Text |  |
  > | Keyword 18 | Keyword to search for or regular expression starting and ending in / e.g. /&lt;.*?&gt;/ to find all values surrounded by &lt; and &gt; see help for more details | Text |  |
  > | Keyword 19 | Keyword to search for or regular expression starting and ending in / e.g. /&lt;.*?&gt;/ to find all values surrounded by &lt; and &gt; see help for more details | Text |  |
  > | Keyword 20 | Keyword to search for or regular expression starting and ending in / e.g. /&lt;.*?&gt;/ to find all values surrounded by &lt; and &gt; see help for more details | Text |  |
  > | Field OID Exclusions | List of Field OIDs to exclude, one per line.<br>Use wildcards to exclude Field OIDs starting or ending with characters, e.g.<br>FLD*<br>*DAT<br>or regular expressions for more complex pattern matching (see help for more information)<br>^FLD.*DAT$ | Textarea |  |

- **ID:** 0177

  **Name:** List of strings to be substituted with another word in Draft text strings

  **Description:** List of strings to be substituted with another string in Draft text strings. Note that this diagnostic works on strings. To perform word substitution see Diagnostic 0029.

  > | Name | Description | Setting Type | Default Value |
  > | --- | --- | --- | --- |
  > | Properties | Properties to include in the diagnostic | Property | Drafts\|Confirmation Message Drafts\|Signature Prompt Folders\|Name Forms\|Help Text Fields\|Pre Text Fields\|Header Text Fields\|Help Text Dictionary Entries\|User Data String Check Actions\|Action String Email Alerts\|Body Email Alerts\|Subject Custom Functions\|Source Code Test Cases\|Test Content |
  > | Substitution 1 | Strings to search for and to replace, separated by \| delimiter, e.g. font="blue"\|font="black" | Text |  |
  > | Substitution 2 | Strings to search for and to replace, separated by \| delimiter, e.g. font="blue"\|font="black" | Text |  |
  > | Substitution 3 | Strings to search for and to replace, separated by \| delimiter, e.g. font="blue"\|font="black" | Text |  |
  > | Substitution 4 | Strings to search for and to replace, separated by \| delimiter, e.g. font="blue"\|font="black" | Text |  |
  > | Substitution 5 | Strings to search for and to replace, separated by \| delimiter, e.g. font="blue"\|font="black" | Text |  |

<a id="trialgrid"></a>
## TrialGrid

Diagnostics to help manage Core Configuration settings

- **ID:** 0018

  **Name:** Review Groups in a Draft should appear in the URL Configuration Review Groups

  **Description:** Review Group names should exist in the URL Configuration for use in Edit Check Actions. Fix will be available for users with Manage Configuration URL permission. The Fix will create the Review Group in the TrialGrid URL Configuration, or activate it if it exists but is inactive.

  > | Name | Description | Setting Type | Default Value |
  > | --- | --- | --- | --- |
  > | Summary | Summarize results (don't display each Field) | Boolean | True |

- **ID:** 0019

  **Name:** Marking Groups in a Draft should appear in the URL Configuration Marking Groups

  **Description:** Marking Groups referenced in active Edit Checks should exist in the URL configuration for use in Edit Check Actions. Fix will be available for users with Manage Configuration URL permission. The Fix will create the Marking Group in the TrialGrid URL Configuration, or activate it if it exists but is inactive.

  > | Name | Description | Setting Type | Default Value |
  > | --- | --- | --- | --- |
  > | Summary | Summarize results (don't display each Field) | Boolean | True |

- **ID:** 0021

  **Name:** EDC Roles in Form or Field Entry or View Restrictions should appear in the URL configuration

  **Description:** EDC Roles in Form or Field Entry or View Restrictions in a Draft should appear in the URL configuration. The Fix will create the EDC Role in the TrialGrid URL Configuration, or activate it if it exists but is inactive.

  > | Name | Description | Setting Type | Default Value |
  > | --- | --- | --- | --- |
  > | Summary | Summarize results (don't display each Field) | Boolean | True |

- **ID:** 0040

  **Name:** Field OIDs should be unique

  **Description:** Some organizations ensure that all Field OIDs in a study are unique across all Forms. This Diagnostic identifies Field OIDs which are not unique in the Draft. Note: Rave does not require Field OIDs to be unique across Forms.

  > | Name | Description | Setting Type | Default Value |
  > | --- | --- | --- | --- |
  > | Field OID Exclusions | List of Field OIDs to exclude, one per line.<br>Use wildcards to exclude Field OIDs starting or ending with characters, e.g.<br>FLD*<br>*DAT<br>or regular expressions for more complex pattern matching (see help for more information)<br>^FLD.*DAT$ | Textarea |  |

- **ID:** 0079

  **Name:** Identify Checks with SendMessage Check Actions

  **Description:** Rave issue DEV-3145 means that an Edit Check with Check Action of SendMessage cannot be loaded into Rave if it is sent to a specific user or user group. If such as Check Action exists, the Upload will fail. Also note that the "Confirmation" check option is not exported from Rave into the ALS. The setting for Confirmation should be checked in Rave after ALS upload. This Diagnostic identifies checks with the SendMessage Check Action so that they can be reviewed in Rave once uploaded via ALS.

  > | Name | Description | Setting Type | Default Value |
  > | --- | --- | --- | --- |
  > | Check_Exclusions | List of Checks to exclude, one per line.<br>Use wildcards to exclude Check Names starting or ending with characters, e.g.<br>CHK*<br>*STD<br>or regular expressions for more complex pattern matching (see help for more information)<br>^CHK.*STD$ | Textarea |  |

- **ID:** 0083

  **Name:** Find Forms which do not have Custom Properties set

  **Description:** This Diagnostic finds Forms which do not have the named Custom Properties set. Fix provides an opportunity to set a value for these missing Properties. Note that property names that do not exist in this URL are ignored.

  > | Name | Description | Setting Type | Default Value |
  > | --- | --- | --- | --- |
  > | Property 1 | Name of Custom Property to search for | Text |  |
  > | Form OID Exclusions | List of Form OIDs to exclude, one per line.<br>Use wildcards to exclude Form OIDs starting or ending with characters, e.g.<br>FORM*<br>*DAT<br>or regular expressions for more complex pattern matching (see help for more information)<br>^FORM.*DAT$ | Textarea |  |
  > | Property 2 | Name of Custom Property to search for | Text |  |
  > | Property 3 | Name of Custom Property to search for | Text |  |
  > | Property 4 | Name of Custom Property to search for | Text |  |
  > | Property 5 | Name of Custom Property to search for | Text |  |
  > | Property 6 | Name of Custom Property to search for | Text |  |
  > | Property 7 | Name of Custom Property to search for | Text |  |
  > | Property 8 | Name of Custom Property to search for | Text |  |
  > | Property 9 | Name of Custom Property to search for | Text |  |
  > | Property 10 | Name of Custom Property to search for | Text |  |

- **ID:** 0084

  **Name:** Find Fields which do not have Custom Properties set

  **Description:** This Diagnostic finds Fields which do not have the named Custom Properties set. Fix provides an opportunity to set a value for these missing Properties. Note that property names that do not exist in this URL are ignored.

  > | Name | Description | Setting Type | Default Value |
  > | --- | --- | --- | --- |
  > | Property 1 | Name of Custom Property to search for | Text |  |
  > | Property 2 | Name of Custom Property to search for | Text |  |
  > | Property 3 | Name of Custom Property to search for | Text |  |
  > | Property 4 | Name of Custom Property to search for | Text |  |
  > | Property 5 | Name of Custom Property to search for | Text |  |
  > | Property 6 | Name of Custom Property to search for | Text |  |
  > | Property 7 | Name of Custom Property to search for | Text |  |
  > | Property 8 | Name of Custom Property to search for | Text |  |
  > | Property 9 | Name of Custom Property to search for | Text |  |
  > | Property 10 | Name of Custom Property to search for | Text |  |
  > | Field OID Exclusions | List of Field OIDs to exclude, one per line.<br>Use wildcards to exclude Field OIDs starting or ending with characters, e.g.<br>FLD*<br>*DAT<br>or regular expressions for more complex pattern matching (see help for more information)<br>^FLD.*DAT$ | Textarea |  |
