caDSR CDE Validator | CDE Validator User Guide
General CDE Validator Questions
Q1. The system generates many warning messages, which makes it difficult to focus on the errors.
A1. The report produces Warnings for variances from the CDE question text, permissible value (PV), and permissible value meaning (PVM) so that the LPOs can determine how closely to the CDE they want to comply. The report is designed to be downloaded and reviewed using Microsoft Excel, where users can filter columns to display only the Errors.
In addition, the 'NCI Questions in ALS' report provides a summary of the Warnings and Errors for all required NRDS and NCI Standard CRF Template CDEs across all forms.
Questions about "Summary" Report
Q1. Protocol Name and ID seem to be reversed. What is used to populate these columns?
A1: In the Rave ALS CRFDraft tab, Column C "ProjectName" is used for Protocol Name, and Column E "PrimaryFormOID" is used for Protocol Number.
Q2. Why does the "# Forms In Protocol Checked" does not equal the "# Forms In Protocol"?
A3: One or both of the following explanations may apply:
- The system excludes forms with the text "cdeCart' in the form name. A possible resolution in the final release could be to exclude these forms in the count of the number of forms in the protocol.
- In the UI for Validator, the user can select a subset of forms from the list of the forms in the ALS document, so the number of forms checked might still not equal the number of forms in the protocol, but these counts would make more sense to the end user.
Q3. A "No CDE provided" message appears in sections that are not intended to have CDEs. These can be section headers or “dividers” on forms that do not include CDEs because they are not collecting data – only displaying messages.
A4: The owner of the form will know whether they intended to have a CDE associated with the question and can ignore the warning, but if there is a way to consistently and reliably detect the intent of the section, we could exclude reporting this warning in the final release.
Technical Questions
Q1. How are the Fixed Unit and Datatype validations determined?
A1: Rave Fixed Unit is based on ALS.Fields.FixedUnit. It is compared with the caDSR ValueDomain.maxLength. If the Fixed Unit is {null} and the caDSR ValueDomain contains a maxLength value, then a WARNING is noted.
Rave does not have a "datatype" column, so the datatype to compare with caDSR ValueDomain.Datatype is derived from ALS.Fields.DataFormat.
- DataFormat value starting with $ equates to caDSR ALPHANUMERIC, CHARACTER, javal.lang.String, java.lang.Character, xsd.string.
- DataFormat value starting with a numeral (no $) equates to caDSR Integer, NUMBER, java.lang.Integer, xsd:integer.
- DataFormat value starting with dd equates to caDSR DATE, xsd:date; and to caDSR FormatName.
- DataFormat value starting with HH, hh, equates to caDSR TIME, xsd:time.
Example: For a Rave DataFormat "$4", based on the rules above, the "$" would be determined to be equivalent to a CDE with a Datatype CHARACTER.
Q2. What is the source for CDE Maximum Length comparison?
A2: The source of column AE in the form reports, CDE Maximum Length, is based on CDE's Value Domain (VD) Maximum length. The source of column AC in the report, Rave Length, is based on comparing ALS Fields.FixedUnit column P to CDE's VD Maximum Length.
Q3. What is the source for comparing Rave UOM?
A3. Column Z in the form reports is the Rave UOM (unit of measurement). If there is a UOM, it is in either Fields.FixedUnit column, or the UnitDictionary Sheet. The UnitDictionaryName is in the Fields.UnitDictionaryName column, and the system checks the appropriate UnitDictionaryEntries.CodedUnit column. This is not tested for conformance, but the CDE's VD UOM is displayed for information purposes.
Q4. What are all the field mappings between Rave and caDSR that are used in the validator?
A4. From the requirements document:
Checker Report Details | Source of Content | Notes |
---|---|---|
Rave Form OID | ALS | Each row in this template represents one ASL Form. The questions are on the "Fields" tab where Forms.OID matches Fields.FormOID.
|
caDSR Form ID | ALS | Not used. |
Version | ALS | Not used. |
Total Number Of Questions Checked | Validator | Each question on an ALS form is represented by a row in the ALS "Fields" template, where Column A matches a Form OID on the Forms template. |
Sequence # | Validator | The sequence of the question in the Rave ALS file. |
Rave Ordinal # | ALS | Rave Ordinal is displayed in the report. It is the question number on the Rave User Interface, but may not be the same as the sequence of the question in the ALS file. Both Sequence number and RAVE Ordinal number are included in the report.
|
Rave Ordinal # | ALS | Each row in Fields template represents one question. If enumerated, Fields.DataDictionaryName has one or more matching rows in the DataDictionaryEntries. Rows are matched by Fields.DataDictionaryName to DataDictionaryEntry.DataDictionaryName. This is not included in the report.
|
CDE PID (Public ID) | ALS | The system parses the field between "PID" and underscore V ('_V') for caDSR Public ID. In the example below, Public ID is 2003309. Exceptions: If not valid, the system adds a "CDE not in caDSR Database" message. The system also checks the CDE Workflow Status. If CDE has been Retired, the system adds a "CDE has been Retired" message.
|
CDE Version | ALS | The system parses the field for two positions after underscore V ('_V' for Version), changing the second character after the V to a dot ('.'). In the example below, Version is 3.0. Exceptions: If one or more newer Versions of CDE exist, the system adds a "New version X,X,X exists" message.
|
NCI Category | ALS | The system checks whether each question is associated with an "NRDS" CDE. Valid results are as follows:
On a separate tab, valid results are as follows:
Example: NRDS |
Question Congruency Status | Validator | The system checks a table of special NCI CDEs. Valid results are as follows:
|
Message | Validator | Summary of all messages from the validation. For some examples:
|
Rave Field Label | ALS |
|
Rave Field Label Result | Validator | The system compares Rave PreText to DocText. This comparison is case-sensitive.
|
CDE Permitted Question Text Choices | caDSR database | The system lists, in one cell, all Reference Documents with type "Preferred Question Text" or "Alternate Question Text" for this CDE with a bar separator (|).
|
Rave Control Type | ALS |
|
Control Type Checker Result | Validator | The system compares Rave ControlType to caDSR Value Domain Type:
|
CDE Value Domain Type | caDSR database |
|
CDE Value Domain Type | ALS | For each enumerated field, the coded values are in the rows on the DataDictionaryEntry tab where Column A matches the parsed name from DataDictionaryName. CodedData and UserDataString are pairs like caDSR PV and PVM. Rave CodedData is on the DataDictionaryEntries tab where DataDictionaryEntry.DataDictionaryName matches the Field OID Field.DataDictionaryName.
|
CDE Value Domain Type | ALS | The DataDictionaryEntries template contains one row per question valid value. ALS Template Name: DataDictionaryEntries |
Rave Coded Data | ALS | The system compares to caDSR Value Domain PermissibleValue.value.
|
Coded Data Result | Validator | The system compares each CodedData value to all the Value Domain's PermissibleValue.value. If it does not match one of the CDEs PV, the system adds "ERROR" to the report. |
Allowable CDE Value | caDSR database | The system lists, in one cell, all PVs for the CDE with a bar separator (|).
|
Rave User String | ALS | This comes from the same row as the value being checked for CodedData for this Field.OID.
|
PV Result | Result of comparing caDSR database compared to ALS content | The system compares to PV.ValueMeaning.longName and the matched PV.Value. The UserDataString must match one of the following values:
If it does not match one of these values, the system adds "ERROR" to the report. |
Allowable CDE Value Meaning Text Choices | caDSR Value Meaning Alternate Names | For "ERROR" the system lists, in one cell, the PVM and all its Alternate Names with a bar separator (|). |
Rave Field Data Type | ALS | The Rave datatype is in column H. The system applies a mapping between caDSR datatype to Rave datatypes during the ObjectCart Import. We will provide a table for the Checker to use to compare Rave type with caDSR type to check validity.
|
Data Type Checker Result | Validator | If types do not match, the system adds "ERROR" to the report. |
CDE Data Type | caDSR database | The system compares to ALS.Fields.DataFormat.
|
Rave UOM | ALS | If there is a UOM, it is in either the Fields.FixedUnit column, or the UnitDictionary Sheet. The UnitDictionaryName is in the Fields.UnitDictionaryName column, and the system checks the appropriate UnitDictionaryEntries.CodedUnit column.
|
UOM Checker Result | Validator | If the Value Domain Unit of Measure is not null/blank, then the system checks whether there is a matching value in FixedUnit or CodedUnit as described in column D. If it does not match, then the system displays the Rave UOM and the Value Domain UOM and result "WARNING". |
CDE UOM | caDSR database | The system displays the Value Domain UOM, if it does not match the Rave value.
|
Rave Length | ALS | The system compares to Value Domain MaximumLengthNumber.
|
Length Checker Result | Validator | If caDSR VD maxlengthNumber does not match FixedUnit number of characters, the system displays both Rave value and caDSR value and result "WARNING". |
CDE Maximum Length | caDSR database | The system compares to ALS.Fields.FixedUnit, and compares to Value Domain PermissibleValue.Value. If the caDSR VD MaximumLengthNumber is less than the longest PermissibleValue.Value, the system reports caDSR Max Length too short ("PVs MaxLength X, caDSR MaxLength X").
|
Rave Display Format | ALS | If DataFormat does not equate to VD FormatName, report "WARNING"
|
Format Checker Result | Validator | The system displays "Warning" if formats are not equivalent. |
CDE Display Format | caDSR database | The system compares to ALS.Fields.DataFormat.
|