An ItemGroupDef describes a type of variable or field grouping that can occur within a study.

Element NameItemGroupDef
Parent ElementsMetaDataVersion
Element XPath(s)/ODM/Study/MetaDataVersion/ItemGroupDef
Element Textual ValueNone
AttributesOID, Name, Repeating, IsReferenceData, Structure, ArchiveLocationID, DatasetName, Domain, Type, Purpose, StandardOID, IsNonStandard, HasNoData, CommentOID
Child Elements(Description?, Class?, (ItemGroupRef?, ItemRef?)+, Coding*, WorkflowRef?, Origin*, Alias*, Leaf?)
Usage/Business Rules
  • Business Rule(s):
    • There must be an ItemGroupDef element for each unique ItemGroupOID attribute value in the study.
  • Other Information:
    • ODM v2.0 introduces nested ItemGroups. ItemGroupRef elements may be added to ItemGroupDef to create hierarchical data structures of arbitrary depth. Nested ItemGroupDefs can be used for enhanced re-usability of ItemGroups. They can also be used to represent semantic relationships between items, items that share common behaviors such as skip logic, or items that are displayed or collected together. 
    • The Coding child element allows to associate semantics within the group. For example, a LOINC panel code in the case that the ItemGroup represents a laboratory panel.
    • The WorkflowRef child element allows to reference a workflow definition (WorkflowDef) for navigation within the ItemGroup, for example, when the ItemGroup represents a form or questionnaire (or part of it) where there is a workflow between the items or groups of items.

AttributeSchema Datatype or EnumerationUsageDefinitionBusiness Rule(s)
OIDoidRequiredUnique identifier for the ItemGroupDef element.
  • The OID attribute value must be unique within the Study/MetaDataVersion.
NamenameRequiredHuman readable name for the ItemGroupDef.
  • The Name attribute must be unique within  set of ItemGroupDef elements within a Study/MetadataVersion.
Repeating(No | Simple | Dynamic | Static)Required

The Repeating attribute indicates that the ItemGroup may occur repeatedly within the containing element.

Simple - the ItemGroup repeats within the containing element and is not bound in any way. Note: It is equivalent to the ODM v1.3.2 case where Repeating="Yes".

Dynamic - ItemGroupData repeats based on values in a codelist. There may be multiple occurrences for some codelist items.

Static - ItemGroupData repeats based on values in a codelist. Only one occurrence may happen for each codelist item.

  • For cases where Repeating is set to Dynamic or Static, one ItemRef within the ItemGroup must include the Repeat="Yes" attribute to indicate that that specific ItemRef references the codelist that establishes the Repeating behavior.
  • If IsReferenceData is "Yes", the ItemGroup can occur only within a ReferenceData element. If IsReferenceData is "No", the ItemGroup can occur only within a ClinicalData element.
RepeatingLimitpositiveIntegerOptionalMaximum number of repeats.
  • RepeatingLimit can only be used when Repeating="Simple".
IsReferenceData(Yes | No)OptionalSpecifies whether this ItemGroupDef is used for non-subject data.
  • Data content for ItemGroupDef elements where the IsReferenceData attribute is "Yes" is under the /ODM/ReferenceData element.
StructuretextOptionalDescription of the level of detail represented by individual records in the ItemGroup
ArchiveLocationIDoidrefOptional

Reference to the unique ID of a leaf element that provides the actual location and file name of the data file.

  • If provided, the value must match the leaf ID attribute of the leaf child element.
DatasetNamenameOptionalName of a file containing the ItemGroupData for this ItemGroupDef. The name applies to the object itself rather then providing a mapping to a different object.
  • Could have constraints on individual ODM extensions, such as Define-XML or associated CDISC Metadata Guidelines. For example, DatasetName could be defined as sasName (see Section 2.14, Data Formats) in Define-XML or associated CDISC Metadata Guidelines.
DomaintextOptionalIdentifies the scope or CDISC SDTMIG/SENDIG Domain of the ItemGroup data. The domain applies to the object itself rather then providing a mapping to a different object.
  • Usage requirements are based on the applicable CDISC Standard.
  • Could have constraints on individual ODM extensions, such as Define-XML or associated CDISC Metadata Guidelines.
Type(Form | Section | Dataset | Concept)Required

identifies the type of data structure the ItemGroup represents.

Form - a CRF for data collection. Note, ItemGroupDef Type="Form" replaces the ODM v1.x FormDef element.

Section - a section within a CRF.

Dataset - tabulation, analysis or operational datasets.

Concept - defines a biomedical concept.

  • Type is an extensible attribute.
  • Type="Section" can only be used when the ItemGroup has a top-level ancestor ItemGroup that has Type="Form".
PurposetextOptionalPurpose of the ItemGroup. 
  • Usage requirements are based on the applicable CDISC Standard.
  • Could have constraints on individual ODM extensions, such as Define-XML or associated CDISC Metadata Guidelines.
StandardOIDoidrefOptionalReference to a Standard element.
  • Must match the OID attribute of a Standard element within this Study/MetaDataVersion/Standards.
IsNonStandardYesConditionalRequired for ADaM, SDTM, or SEND if StandardOID is not provided.
  • Must not be provided when StandardOID is provided.
HasNoDataYesOptionalUsed to indicate that an ItemGroupDef has no data. May be used at sponsor's discretion or if required by a regulatory authority
  • A comment must be included to explain why no data are present for datasets that were planned for use in the study.

CommentOID

oidrefOptional

Reference to a CommentDef with sponsor provided information related to this ItemGroupDef.

It allows annotations to the ItemGroup.

  • Must match the OID attribute of a CommentDef element within this Study/MetaDataVersion.


Example: Simple ItemGroupDef

This example shows a minimal nested ItemGroupDef of type Form.
Simple ItemGroupDef
<ItemGroupDef OID="ODM.IG.LB" Name="LAB Measurements" Repeating="No" Type="Form">
	<Description>
      <TranslatedText xml:lang="en" Type="text/plain">Laboratory Tests Results Form</TranslatedText>
    </Description>
    <ItemRef ItemOID="ODM.IT.LB.LBDTC" Mandatory="Yes" OrderNumber="1"/>
    <ItemGroupRef ItemGroupOID="ODM.IG.LB.WBC" Mandatory="Yes" MethodOID="ODM.MT.LB.LBORRES" OrderNumber="2"/>
    <ItemRef ItemOID="ODM.IT.LB.ALB.LBORRES" Mandatory="Yes" OrderNumber="3"/>
    <ItemRef ItemOID="ODM.IT.LB.ALB.LBORRESU" Mandatory="Yes" OrderNumber="4"/>
    <ItemRef ItemOID="ODM.IT.LB.GLUC.LBORRES" Mandatory="Yes" OrderNumber="5"/>
    <ItemRef ItemOID="ODM.IT.LB.GLUC.LBORRESU" Mandatory="Yes" OrderNumber="6"/>
</ItemGroupDef>
<!-- To indicate that WBC value (ODM.IT.LB.WBC.LBORRES) and WBC unit (ODM.IT.LB.WBC.LBORRESU) 
belong together, they can be put into one ItemGroupDef, which can then be within another ItemGroupDef -->             
<ItemGroupDef OID="ODM.IG.LB.WBC" Name="WBC Lab Results with Unit" Repeating="No" Type="Form">
    <ItemRef ItemOID="ODM.IT.LB.WBC.LBORRES" Mandatory="Yes" OrderNumber="1"/>
    <ItemRef ItemOID="ODM.IT.LB.WBC.LBORRESU" Mandatory="Yes" OrderNumber="2"/>               
    <Coding Code="26464-8" System="http://loinc.org" SystemName="LOINC" SystemVersion="2.61" Label="loinc_code"/>
</ItemGroupDef> 

Example: Simple ItemGroupDef

An example of Static and Simple Repeating ItemGroupDef elements.
Repeating ItemGroupDef
<ItemGroupDef OID="ODM.IG.DM" Name="Demographics" Repeating="No" Type="Form">
    <ItemRef ItemOID="IT.DM.BRTHYR" Mandatory="Yes"/>
    <ItemRef ItemOID="IT.DM.BRTHMO" Mandatory="Yes"/>
    <ItemRef ItemOID="IT.DM.BRTHDY" Mandatory="Yes"/>
    <ItemRef ItemOID="IT.DM.SEX" Mandatory="Yes"/>
    <ItemRef ItemOID="IT.DM.ETHNIC" Mandatory="Yes"/>
    <ItemGroupRef ItemGroupOID="ODM.IG.RACE" Mandatory="Yes"/>
    <ItemGroupRef ItemGroupOID="ODM.IG.RACEOTH" Mandatory="No"/>
</ItemGroupDef>

<ItemGroupDef OID="ODM.IG.RACE" Name="Race" Repeating="Static" Type="Section">
    <ItemRef ItemOID="IT.DM.RACE" Mandatory="Yes" Repeating="Yes"/>
</ItemGroupDef>

<ItemGroupDef OID="ODM.IG.RACEOTH" Name="Race Other(s)" Repeating="Simple" RepeatingLimit="2" Type="Section">
    <ItemRef ItemOID="IT.DM.RACEOTH" Mandatory="No" Repeating="Yes"/>
</ItemGroupDef>

<ItemDef OID="IT.DM.RACE" Name="RACE" DataType="text" Length="41">
    <Description>
        <TranslatedText xml:lang="en" Type="text/plain">Race</TranslatedText>
    </Description>
    <Question>
        <TranslatedText xml:lang="en" Type="text/plain">Race (Select all that apply)</TranslatedText>
    </Question>
    <CodeListRef CodeListOID="CL.RACE"/>
</ItemDef>

<ItemDef OID="IT.DM.RACEOTH" Name="RACEOTH" DataType="text" Length="41">
    <Description>
        <TranslatedText xml:lang="en" Type="text/plain">Race Other</TranslatedText>
    </Description>
    <Question>
        <TranslatedText xml:lang="en" Type="text/plain">Other Race (maximum two other values not listed under RACE)</TranslatedText>
    </Question>
</ItemDef> 

Example: The use of nested ItemGroupDef for representation of a Biomedical Concept

The use of nested ItemGroupDef for representation of a Biomedical Concept
<MetaDataVersion xmlns="http://www.cdisc.org/ns/odm/v2.0" OID="MDV.BC.BLOOD_PRESSURE" Name="Example Biomedical Concept in ODMv2: Blood Pressure">
	<!-- This example demonstrates the use of ODMv2 nested ItemGroupDef for representation of a Biomedical Concept, 
	in this case for blood pressure (systolic and diastolic) -->
	<!-- The example also demonstrates the use of Internationalization (i14n) -->
	<!-- The "Type" attribute is set to "Concept" to indicate the ItemGroupDef is used to define a concept -->
    <ItemGroupDef OID="IG.BC.BLOOD_PRESSURE" Name="Biomedical Concept Blood Pressure" Repeating="No" Type="Concept">
        <Description>
            <TranslatedText xml:lang="en" Type="text/plain">Example Biomedical Concept: Blood Pressure</TranslatedText>
            <TranslatedText xml:lang="de" Type="text/plain">Beispiel Biomedizinisches Konzept: Blutdruck</TranslatedText>
        </Description>
        <!-- Demonstrates the use of "nested" ItemGroups - we have one for each concept part, 
		in this case "systolic blood pressure" and "diastolic blood pressure" -->
        <ItemGroupRef ItemGroupOID="IG.SYSTOLIC_BP" Mandatory="Yes"/>
        <ItemGroupRef ItemGroupOID="IG.DIASTOLIC_BP" Mandatory="Yes"/>
    </ItemGroupDef>
    <!-- Separate ItemGroups for diastolic and systolic blood pressure -->
	<!-- Systolic blood pressure -->
    <ItemGroupDef OID="IG.SYSTOLIC_BP" Name="Systolic Blood Pressure Measurement" Repeating="No" Type="Concept" >
        <Description>
            <TranslatedText xml:lang="en" Type="text/plain">Systolic Blood Pressure</TranslatedText>
            <TranslatedText xml:lang="de" Type="text/plain">Systolischer Blutdruck</TranslatedText>
        </Description>
		<!-- The systolic blood pressure concept has value, the position of the subject, 
		the body location of the measurement, and the laterality (left, right) of the measurement location -->
		<!-- Also remark that these are shared between systolic and diastolic blood pressure, 
		i.e. both use the same attribute definitions -->
        <ItemRef ItemOID="IT.BP_VALUE" Mandatory="Yes" UnitsItemOID="IT.BP_UNITS"/>
        <ItemRef ItemOID="IT.BP_POSITION" Mandatory="Yes"/>
        <ItemRef ItemOID="IT.BP_LOCATION" Mandatory="No"/>
        <ItemRef ItemOID="IT.BP_LOCATION_LATERALITY" Mandatory="No"/>
    </ItemGroupDef>
 	<!-- The diastolic blood pressure concept has value, the position of the subject, 
		the body location of the measurement, and the laterality (left, right) of the measurement location -->
    <ItemGroupDef OID="IG.DIASTOLIC_BP" Name="Diastolic Blood Pressure Measurement" Repeating="No" Type="Concept" >
        <Description>
            <TranslatedText xml:lang="en" Type="text/plain">Diastolic Blood Pressure</TranslatedText>
            <TranslatedText xml:lang="de" Type="text/plain">Diastolischer Blutdruck</TranslatedText>
        </Description>
        <ItemRef ItemOID="IT.BP_VALUE" Mandatory="Yes" UnitsItemOID="IT.BP_UNITS"/>
        <ItemRef ItemOID="IT.BP_POSITION" Mandatory="Yes"/>
        <ItemRef ItemOID="IT.BP_LOCATION" Mandatory="No"/>
        <ItemRef ItemOID="IT.BP_LOCATION_LATERALITY" Mandatory="No"/>
    </ItemGroupDef>
    <!-- Remark: the alternative would probably have been to have a repeating ItemGroup that repeats over "Systolic" and "Diastolic -->
    <!-- Item definitions -->
	<!-- The blood pressure value (a number) -->
    <ItemDef OID="IT.BP_VALUE" Name="Blood Pressure Value" DataType="decimal">
        <Description>
            <TranslatedText xml:lang="en" Type="text/plain">Blood Pressure Value</TranslatedText>
            <TranslatedText xml:lang="de" Type="text/plain">Blutdruckwert</TranslatedText>
        </Description>
        <!-- In the case of a Biomedical Question, would one also add the child element "Question" -->
    </ItemDef>
	<!-- The unit for the blood pressure measurement (e.g. mmHg, cmHg, kPa, ...) -->
    <ItemDef OID="IT.BP_UNITS" Name="Units for blood pressure" DataType="text">
        <Description>
            <TranslatedText xml:lang="en" Type="text/plain">Blood Pressure Unit</TranslatedText>
            <TranslatedText xml:lang="de" Type="text/plain">Blutdruck Einheit</TranslatedText>
        </Description>
		<!-- For the unit, we use a subset of the CDISC codelist C71620 (UNIT codelist) -->
        <CodeListRef CodeListOID="CL.C71620.UNIT.SUBSET"/>
    </ItemDef>
	<!-- The body position of the measurement (e.g. sitting, standing, supine, ...) -->
    <ItemDef OID="IT.BP_POSITION" Name="Body Position" DataType="text">
        <Description>
            <TranslatedText xml:lang="en" Type="text/plain">Body Position</TranslatedText>
            <TranslatedText xml:lang="de" Type="text/plain">Körperposition</TranslatedText>
        </Description>
	 	<!-- For the body position, we use a subset of the CDISC codelist C71148 (Position codelist) -->
        <CodeListRef CodeListOID="CL.C71148.POSITION.SUBSET"/>
    </ItemDef>
	<!-- The body location of the measurement (e.g. arm, ankle, ...) -->
    <ItemDef OID="IT.BP_LOCATION" Name="Body Location" DataType="text">
        <Description>
            <TranslatedText xml:lang="en" Type="text/plain">Body Location</TranslatedText>
            <TranslatedText xml:lang="de" Type="text/plain">Körperteil</TranslatedText>
        </Description>
	 	<!-- For the body location, we use a subset of the CDISC codelist C74456 (Anatomical location codelist) -->
        <CodeListRef CodeListOID="CL.C74456.LOC.SUBSET"/>
    </ItemDef>
	<!-- The laterality of the measurement location (e.g. left, right, ...) -->
    <ItemDef OID="IT.BP_LOCATION_LATERALITY" Name="Laterality" DataType="text">
        <Description>
            <TranslatedText xml:lang="en" Type="text/plain">Laterality</TranslatedText>
            <TranslatedText xml:lang="de" Type="text/plain">Lateralität</TranslatedText>
        </Description>
	 	<!-- For the laterality, we use a subset of the CDISC codelist C99073 (Laterality codelist) -->
        <CodeListRef CodeListOID="CL.C99073.LAT.SUBSET"/>
    </ItemDef>
    
    <!-- CodeLists -->
    <CodeList OID="CL.C71148.POSITION.SUBSET" Name="Position" DataType="text">
        <Description>
            <TranslatedText xml:lang="en" Type="text/plain">Codelist subset from CDISC codelist C71148 for blood pressure, limited to "SITTING", "STANDING", "SUPINE"</TranslatedText>
        </Description>
		<!-- For each of the allowed terms, we provide the CDISC/NCI code in the "Coding" element. 
		It also indicates that we are using the 2022-03-25 version of the CDISC controlled terminology. -->
        <CodeListItem CodedValue="SITTING">
            <Decode>
                <TranslatedText xml:lang="en" Type="text/plain">Sitting</TranslatedText>
                <TranslatedText xml:lang="de" Type="text/plain">Sitzend</TranslatedText>
            </Decode>
            <Coding Code="C62122" System="https://www.cdisc.org/standards/terminology" SystemName="CDISC/NCI CT" SystemVersion="2022-03-25"/>
        </CodeListItem>
        <CodeListItem CodedValue="STANDING">
            <Decode>
                <TranslatedText xml:lang="en" Type="text/plain">Standing</TranslatedText>
                <TranslatedText xml:lang="de" Type="text/plain">Stehend</TranslatedText>
            </Decode>
            <Coding Code="C62166" System="https://www.cdisc.org/standards/terminology" SystemName="CDISC/NCI CT" SystemVersion="2022-03-25"/>
        </CodeListItem>
        <CodeListItem CodedValue="SUPINE">
            <Decode>
                <TranslatedText xml:lang="en" Type="text/plain">Supine</TranslatedText>
                <TranslatedText xml:lang="de" Type="text/plain">In Rückenlage</TranslatedText>
            </Decode>
            <Coding Code="C62167" System="https://www.cdisc.org/standards/terminology" SystemName="CDISC/NCI CT" SystemVersion="2022-03-25"/>
        </CodeListItem>
		<!-- Also the codelist itself, as a subset of the "Position" codelist, has an CDISC/NCI code -->
        <Coding Code="C71148" System="https://www.cdisc.org/standards/terminology" SystemName="CDISC/NCI CT" SystemVersion="2022-03-25"/>
    </CodeList>
    <CodeList OID="CL.C74456.LOC.SUBSET" Name="Anatomical Location" DataType="text">
        <Description>
            <TranslatedText xml:lang="en" Type="text/plain">Codelist subset from CDISC codelist C74456 for blood pressure, limited to "ARM", and "ANKLE JOINT"</TranslatedText>
        </Description>
        <CodeListItem CodedValue="ARM">
            <Decode>
                <TranslatedText xml:lang="en" Type="text/plain">Arm</TranslatedText>
                <TranslatedText xml:lang="de" Type="text/plain">Oberarm</TranslatedText>
            </Decode>
            <Coding Code="C32141" System="https://www.cdisc.org/standards/terminology" SystemName="CDISC/NCI CT" SystemVersion="2022-03-25"/>
        </CodeListItem>
        <CodeListItem CodedValue="ANKLE JOINT">
            <Decode>
                <TranslatedText xml:lang="en" Type="text/plain">Ankle joint</TranslatedText>
                <TranslatedText xml:lang="de" Type="text/plain">Knöchel</TranslatedText>
            </Decode>
            <Coding Code="C32078" System="https://www.cdisc.org/standards/terminology" SystemName="CDISC/NCI CT" SystemVersion="2022-03-25"/>
        </CodeListItem>
        <Coding Code="C74456" System="https://www.cdisc.org/standards/terminology" SystemName="CDISC/NCI CT" SystemVersion="2022-03-25"/>
    </CodeList>
    <CodeList OID="CL.C99073.LAT.SUBSET" Name="Laterality" DataType="text">
        <Description>
            <TranslatedText xml:lang="en" Type="text/plain">Codelist subset from CDISC codelist C99073 for blood pressure, limited to "LEFT" and "RIGHT"</TranslatedText>
        </Description>
        <CodeListItem CodedValue="LEFT">
            <Decode>
                <TranslatedText xml:lang="en" Type="text/plain">Left</TranslatedText>
                <TranslatedText xml:lang="de" Type="text/plain">Links</TranslatedText>
            </Decode>
            <Coding Code="C25229" System="https://www.cdisc.org/standards/terminology" SystemName="CDISC/NCI CT" SystemVersion="2022-03-25"/>
        </CodeListItem>
        <CodeListItem CodedValue="RIGHT">
            <Decode>
                <TranslatedText xml:lang="en" Type="text/plain">Right</TranslatedText>
                <TranslatedText xml:lang="de" Type="text/plain">Rechts</TranslatedText>
            </Decode>
        </CodeListItem>
        <Coding Code="C99073" System="https://www.cdisc.org/standards/terminology" SystemName="CDISC/NCI CT" SystemVersion="2022-03-25"/>
    </CodeList>
    <CodeList OID="CL.C71620.UNIT" Name="Blood Pressure Unit" DataType="text">
        <Description>
            <TranslatedText xml:lang="en" Type="text/plain">Codelist subset from CDISC codelist C99073 for blood pressure, limited to "mmHg", "cmHg" and "Pa"</TranslatedText>
        </Description>
		<!-- For each of the items in the list of allowed values, we also add the UCUM notation of the unit, using the "Coding" element.
		This is especially important for use with Electronic Health Records (EHRs) where UCUM is almost always used for units of measure. -->
        <CodeListItem CodedValue="mmHg">
            <Decode>
                <TranslatedText xml:lang="en" Type="text/plain">mmHg</TranslatedText>
                <TranslatedText xml:lang="de" Type="text/plain">mmHg</TranslatedText>
            </Decode>
            <Coding Code="C49670" System="https://www.cdisc.org/standards/terminology" SystemName="CDISC/NCI CT" SystemVersion="2022-03-25"/>
            <!-- UCUM equivalent, especially useful for EHR retrieval/mapping -->
            <Coding Code="mm[Hg]" System="http://unitsofmeasure.org" SystemName="UCUM"/>
        </CodeListItem>
        <CodeListItem CodedValue="cmHg">
            <Decode>
                <TranslatedText xml:lang="en" Type="text/plain">cmHg</TranslatedText>
                <TranslatedText xml:lang="de" Type="text/plain">cmHg</TranslatedText>
            </Decode>
            <Coding Code="C147129" System="https://www.cdisc.org/standards/terminology" SystemName="CDISC/NCI CT" SystemVersion="2022-03-25"/>
            <!-- UCUM equivalent, especially useful for EHR retrieval/mapping -->
            <Coding Code="cm[Hg]" System="http://unitsofmeasure.org" SystemName="UCUM"/>
        </CodeListItem>
        <CodeListItem CodedValue="kPa">
            <Decode>
                <TranslatedText xml:lang="en" Type="text/plain">kPa</TranslatedText>
                <TranslatedText xml:lang="de" Type="text/plain">kPa</TranslatedText>
            </Decode>
            <Coding Code="C42547" System="https://www.cdisc.org/standards/terminology" SystemName="CDISC/NCI CT" SystemVersion="2022-03-25"/>
            <!-- UCUM equivalent, especially useful for EHR retrieval/mapping -->
            <Coding Code="kPa" System="http://unitsofmeasure.org" SystemName="UCUM"/>
        </CodeListItem>
        <Coding Code="C71620" System="https://www.cdisc.org/standards/terminology" SystemName="CDISC/NCI CT" SystemVersion="2022-03-25"/>
    </CodeList>
</MetaDataVersion>

  • No labels