An ItemDef describes a type of item that can occur within a study. Item properties include name, datatype, range, or codelist restrictions, and several other properties.
Element Name | ItemDef |
---|---|
Parent Element(s) | MetaDataVersion |
Element XPath(s) | /ODM/Study/MetaDataVersion/ItemDef |
Element Textual Value | None |
Attributes | OID, Name, DataType, Length, DisplayFormat, VariableSet, CommentOID |
Child Elements | (Description?, Definition?, Question?, Prompt?, CRFCompletionInstructions?, ImplementationNotes?, CDISCNotes?, RangeCheck*, CodeListRef?, ValueListRef?, Coding*, Alias*) |
Usage/Business Rules |
|
Attribute | Schema Datatype or Enumeration | Usage | Definition | Business Rules |
---|---|---|---|---|
OID | oid | Required | Unique identifier for the ItemDef element. |
|
Name | name | Required | Human readable name for the ItemDef. |
|
DataType | (text | integer | decimal | float | double | date | time | datetime | string | boolean | double | hexBinary | base64Binary | hexFloat | base64Float | partialDate | partialTime | partialDatetime | durationDatetime | intervalDatetime | incompleteDatetime | incompleteDate | incompleteTime | URI ) | Required | Specification of the allowable values and the intended use of the corresponding value elements. |
|
Length | positiveInteger | Optional | Specifies the number of characters allowed for the ItemData/Value when it is represented as a text. |
|
DisplayFormat | text | Optional | Display format supports data visualization of numeric float and date values. | |
VariableSet | text | Optional | ADaM variable set, e.g. Dose, Analysis Parameter, Treatment Timing. | |
CommentOID | oidref | Optional | Reference to a CommentDef with sponsor provided information related to this ItemDef, |
|
The DataType attribute specifies the allowable values and the intended use of the corresponding value elements, but not necessarily how systems will store them. The receiver is expected to preserve the value and precision of the data and can use the ODM-specified datatype to determine the best representation of the data in their system.
The Length attribute is optional for all datatypes.
Note: In version 1.3.2 the Length and SignificantDigits attributes were used to express the requirements for the receiving system. In version 2.0 the meaning of the Length attribute remains the same for the text and string datatypes, but was changed for the numeric datatypes and became optional for all datatypes. The SignificantDigits attribute was renamed to FractionDigits.If DataType=text or string and the Length attribute is provided, Length=N indicates that the receiving system be able to process and store all text string values of length less than or
equal to N. All characters are allowed in text string values.
When the Length attribute is provided, Length=N means that when a value of an item is represented as a text, its length must be less or equal to N. Length is a statement about an item's data values, not the number of characters used to represent these values in value elements. For example, the character "<" might be represented as
"&lt;".
There are 3 datatypes available for floating-point values: decimal, float and double. The decimal datatype represents a subset of the real numbers, which can be represented by decimal numerals. This datatype should be used for items with floating-point values when the number of decimal places is known in advance. In this case, attribute FractionDigits should be used to define the maximum number of fractional digits, or digits after the decimal point. FractionDigits controls the size of the minimum difference between item values by restricting the values to numbers that are expressible as i x 10-n where i and n are integers and 0 <= n <= FractionDigits. For the decimal datatype, Length=N means that the number of characters required to represent the full numeric value, including the decimal character, must be less than or equal to N. For datatype decimal, the Length and FractionDigits attributes must both be present or both be absent.
In case the number of decimal places is not known in advance or is not important, either float or double datatypes should be used. Both of them are patterned after the IEEE floating-point types. DataType=float corresponds to 4-byte single-precision floating-point type, with the basic value space consisting of the values m x 2e, where m is an integer whose absolute value is less than 224, and e is an integer between -149 and 104, inclusive. DataType=double corresponds to 8-byte double-precision floating-point type, with the basic value space consisting of the values m x 2e, where m is an integer whose absolute value is less than 253, and e is an integer between -1075 and 970, inclusive.
Note: Data characters that are not included in the encoding character set for a particular ODM file must be represented using XML entities or character references. For example, Æ could be represented as "Æ".
The CommentOID attribute references a CommentDef element that may carry submission information as described in the latest version of CDISC SDTM .
The ItemDef child element Alias may be added to represent an alternative name for the ItemDef, for example setting with Context="SASFieldName" for SAS dataset variable names.
Note: In the ODM model, all internal keys are assumed to be unchangeable. This was done to make the audit trail issues work: if the SubjectKey in the model were the actual external subject identifier (or randomization ID) of a patient, and that value is sent incorrectly in one ODM file, there would be no way to correct the mistake in a followup file. In doing this, we intend that the external subject keys (and other externally visible key variables) should be defined as Items in the metadata. Thus they can be modified through normal modify/audit mechanism. While this solves the problem of supporting modification of study keys, it leaves the user without a way to identify which ItemDefs have special meaning or what the meaning is. The most obvious place where this is a problem is in matching up patients when loading data from an external source. If you can't find the patient ID how do you do the matching? The answer is to create an Alias child element of ItemDef to provide an alternative name by, for example, setting with Context="SDSVarName" and Name="USUBJID". Setting Context to SDSVarName is a convention that can be used to tag the Item with a business meaning. Rather than try to enumerate all possible meanings in the ODM model, the Data Exchange Standards Team thought it best to rely on the set of variable names defined in the CDISC SDTM, since this list covers the core variables used in managing clinical data. Software that is processing an ODM-compliant XML instance can therefore use specific Names when Context="SDSVarName" to identify standard, frequently used variables. The use of this Context value is restricted to variables defined in the SDTM model. In tagging a variable, you are identifying it as matching the SDTM definition for that variable. A partial list of commonly used values includes:
See the SDTM Specification and Implementation Guide for more information about SDTM variables. |
The Question element contains the text shown to a human user when prompted to provide data for this Item. The ExternalQuestion element does the same but refers to an externally defined question. If both are present, they should be consistent.
The RangeChecks constrain the acceptable values for items of this type.
The CodeListRef (if present) constrains the acceptable values for items of this type to be members of the referenced codelist.
Note: Items do not repeat within an item group.