Data Definition Specification (DDS)
Standards-agnostic canonical model for clinical data meaning, structure, and governance. Projects to CDISC (SDTM/ADaM/Define-XML), FHIR, OMOP, and SDMX. ODM/Define-XML is one serialization facet applied by the output generator; the canonical model is not ODM-derived.
URI: https://w3id.org/dds
Name: data-definition-spec
Schema Diagram
erDiagram
Specification {
stringList resources
string usdmStudyDesignId
string studyOID
string studyName
string studyDescription
string protocolName
string OID
string uuid
string name
string description
string label
stringList aliases
boolean mandatory
string purpose
datetime lastUpdated
string owner
string wasDerivedFrom
}
SiteOrSponsorComment {
string text
OriginSource sourceType
string source
string OID
string uuid
string name
string description
string label
stringList aliases
boolean mandatory
string purpose
datetime lastUpdated
string owner
string wasDerivedFrom
}
Comment {
string text
string OID
string uuid
string name
string description
string label
stringList aliases
boolean mandatory
string purpose
datetime lastUpdated
string owner
string wasDerivedFrom
}
Coding {
string code
string decode
string codeSystem
string codeSystemVersion
AliasPredicate aliasType
}
DocumentReference {
string title
string leafID
integerList pages
string relationship
string version
string href
string OID
string uuid
string name
string description
string label
stringList aliases
}
Display {
string displayType
string version
string href
string OID
string uuid
string name
string description
string label
stringList aliases
boolean mandatory
string purpose
datetime lastUpdated
string owner
string wasDerivedFrom
}
Analysis {
string analysisReason
string analysisPurpose
stringList inputData
string version
string href
MethodType type
string OID
string uuid
string name
string description
string label
stringList aliases
boolean mandatory
string purpose
datetime lastUpdated
string owner
string wasDerivedFrom
}
Concept {
string version
string href
string OID
string uuid
string name
string description
string label
stringList aliases
boolean mandatory
string purpose
datetime lastUpdated
string owner
string wasDerivedFrom
}
ConceptProperty {
integer minOccurs
integer maxOccurs
string OID
string uuid
string name
string description
string label
stringList aliases
boolean mandatory
string purpose
datetime lastUpdated
string owner
string wasDerivedFrom
}
CodeList {
DataType dataType
string formatName
string version
string href
boolean isNonStandard
string OID
string uuid
string name
string description
string label
stringList aliases
boolean mandatory
string purpose
datetime lastUpdated
string owner
string wasDerivedFrom
}
Standard {
StandardName name
StandardType type
PublishingSet publishingSet
string version
StandardStatus status
string OID
string uuid
string description
string label
stringList aliases
}
Resource {
string resourceType
string attribute
string version
string href
string OID
string uuid
string name
string description
string label
stringList aliases
}
FormalExpression {
string context
string expression
string returnType
string OID
string uuid
string name
string description
string label
stringList aliases
}
ReturnValue {
DataType dataType
stringList valueList
string OID
string uuid
string name
string description
string label
stringList aliases
}
Parameter {
DataType dataType
string value
string defaultValue
stringList items
boolean required
string OID
string uuid
string name
string description
string label
stringList aliases
}
LogicalPredicate {
string implementsPredicate
LogicalOperator operator
string OID
string uuid
string name
string description
string label
stringList aliases
boolean mandatory
string purpose
datetime lastUpdated
string owner
string wasDerivedFrom
}
RangeCheck {
Comparator comparator
stringList checkValues
string item
SoftHard softHard
LogicalOperator operator
}
Check {
string publishedBy
uriorcurie externalReference
SoftHard severity
string OID
string uuid
string name
string description
string label
stringList aliases
boolean mandatory
string purpose
datetime lastUpdated
string owner
string wasDerivedFrom
}
IdentifiableElement {
string OID
string uuid
string name
string description
string label
stringList aliases
}
ApplicabilityCondition {
string OID
string uuid
string name
string description
string label
stringList aliases
boolean mandatory
string purpose
datetime lastUpdated
string owner
string wasDerivedFrom
}
CodeListItem {
string codedValue
string decode
string description
stringList aliases
decimal weight
boolean other
}
Dataflow {
stringList deliverySchedule
string version
string href
string OID
string uuid
string name
string description
string label
stringList aliases
boolean mandatory
string purpose
datetime lastUpdated
string owner
string wasDerivedFrom
}
Dimension {
string role
string OID
string uuid
string name
string description
string label
stringList aliases
boolean mandatory
string purpose
datetime lastUpdated
string owner
string wasDerivedFrom
}
Method {
MethodType type
string OID
string uuid
string name
string description
string label
stringList aliases
boolean mandatory
string purpose
datetime lastUpdated
string owner
string wasDerivedFrom
}
Item {
DataType dataType
integer length
integer decimalDigits
string displayFormat
integer significantDigits
string OID
string uuid
string name
string description
string label
stringList aliases
boolean mandatory
string purpose
datetime lastUpdated
string owner
string wasDerivedFrom
}
Origin {
OriginType type
OriginSource source
}
SourceItem {
stringList resource
}
DataStructureDefinition {
boolean evolvingStructure
string domain
string structure
boolean isReferenceData
ItemGroupType type
boolean hasNoData
stringList profile
string authenticator
boolean isNonStandard
string OID
string uuid
string name
string description
string label
stringList aliases
boolean mandatory
string purpose
datetime lastUpdated
string owner
string wasDerivedFrom
string version
string href
}
Timing {
TimingType type
boolean isNominal
string value
string relativeTo
string relativeFrom
datetime windowLower
datetime windowUpper
boolean recalled
string frequency
string OID
string uuid
string name
string description
string label
stringList aliases
}
DefClass {
string name
}
SubClass {
string name
string parentClass
}
ItemGroup {
string domain
string structure
boolean isReferenceData
ItemGroupType type
boolean hasNoData
stringList profile
string authenticator
boolean isNonStandard
string OID
string uuid
string name
string description
string label
stringList aliases
boolean mandatory
string purpose
datetime lastUpdated
string owner
string wasDerivedFrom
string version
string href
}
ComponentList {
stringList components
string OID
string uuid
string name
string description
string label
stringList aliases
}
DataAttribute {
string role
string OID
string uuid
string name
string description
string label
stringList aliases
boolean mandatory
string purpose
datetime lastUpdated
string owner
string wasDerivedFrom
}
Measure {
string role
string OID
string uuid
string name
string description
string label
stringList aliases
boolean mandatory
string purpose
datetime lastUpdated
string owner
string wasDerivedFrom
}
DataProduct {
string dataProductOwner
string domain
DataProductLifecycleStatus lifecycleStatus
string version
string href
string OID
string uuid
string name
string description
string label
stringList aliases
boolean mandatory
string purpose
datetime lastUpdated
string owner
string wasDerivedFrom
}
ProvisionAgreement {
string consumer
string version
string href
string OID
string uuid
string name
string description
string label
stringList aliases
boolean mandatory
string purpose
datetime lastUpdated
string owner
string wasDerivedFrom
}
Policy {
PolicyType policyType
string profile
string assigner
string assignee
string OID
string uuid
string name
string description
string label
stringList aliases
boolean mandatory
string purpose
datetime lastUpdated
string owner
string wasDerivedFrom
}
Rule {
string action
string target
string assigner
string assignee
string OID
string uuid
string name
string description
string label
stringList aliases
}
Constraint {
string leftOperand
ConstraintOperator operator
string rightOperand
string unit
string OID
string uuid
string name
string description
string label
stringList aliases
}
DataProvider {
string role
OrganizationType type
string location
string address
string OID
string uuid
string name
string description
string label
stringList aliases
}
Organization {
string role
OrganizationType type
string location
string address
string OID
string uuid
string name
string description
string label
stringList aliases
}
Dataset {
string publishedBy
stringList keys
string datasetType
string conformsTo
string informationSensitivityClassification
string version
string href
stringList profile
string authenticator
string action
string reportingBegin
string reportingEnd
string dataExtractionDate
string validFrom
string validTo
string publicationYear
string publicationPeriod
string OID
string uuid
string name
string description
string label
stringList aliases
}
Distribution {
string conformsTo
string format
}
DataService {
string protocol
string securitySchemaType
string resourceType
string attribute
string version
string href
string OID
string uuid
string name
string description
string label
stringList aliases
}
Dictionary {
string publishedBy
string version
string href
string OID
string uuid
string name
string description
string label
stringList aliases
}
Query {
QueryType queryType
string text
string status
string source
string OID
string uuid
string name
string description
string label
stringList aliases
boolean mandatory
string purpose
datetime lastUpdated
string owner
string wasDerivedFrom
}
Relationship {
PredicateTermEnum predicateTerm
LinkingPhraseEnum linkingPhrase
string OID
string uuid
string name
string description
string label
stringList aliases
}
Specification ||--}o ItemGroup : "itemGroups"
Specification ||--}o Item : "items"
Specification ||--}o LogicalPredicate : "predicates"
Specification ||--}o ApplicabilityCondition : "applicabilityConditions"
Specification ||--}o Method : "methods"
Specification ||--}o Analysis : "analyses"
Specification ||--}o CodeList : "codeLists"
Specification ||--}o Coding : "codings"
Specification ||--}o Concept : "concepts"
Specification ||--}o Relationship : "relationships"
Specification ||--}o Query : "queries"
Specification ||--}o Check : "checks"
Specification ||--}o Dictionary : "dictionaries"
Specification ||--}o Standard : "standards"
Specification ||--}o DocumentReference : "annotatedCRFs"
Specification ||--}o DataProduct : "dataProducts"
Specification ||--}o Display : "displays"
Specification ||--}o Coding : "coding"
Specification ||--}o Comment : "comments"
Specification ||--}o SiteOrSponsorComment : "siteOrSponsorComments"
SiteOrSponsorComment ||--}o Coding : "coding"
SiteOrSponsorComment ||--}o Comment : "comments"
SiteOrSponsorComment ||--}o SiteOrSponsorComment : "siteOrSponsorComments"
Comment ||--}o DocumentReference : "documents"
Comment ||--}o Coding : "coding"
Comment ||--}o Comment : "comments"
Comment ||--}o SiteOrSponsorComment : "siteOrSponsorComments"
DocumentReference ||--}o Coding : "coding"
Display ||--|o Analysis : "analysis"
Display ||--}o DocumentReference : "location"
Display ||--}o Coding : "coding"
Display ||--}o Comment : "comments"
Display ||--}o SiteOrSponsorComment : "siteOrSponsorComments"
Analysis ||--|o Method : "analysisMethod"
Analysis ||--}o ApplicabilityCondition : "applicableWhen"
Analysis ||--}o Dataflow : "inputDataflows"
Analysis ||--}o FormalExpression : "expressions"
Analysis ||--}o DocumentReference : "documents"
Analysis ||--|o Concept : "implementsConcept"
Analysis ||--}o Coding : "coding"
Analysis ||--}o Comment : "comments"
Analysis ||--}o SiteOrSponsorComment : "siteOrSponsorComments"
Concept ||--}o ConceptProperty : "properties"
Concept ||--}o Coding : "coding"
Concept ||--}o Comment : "comments"
Concept ||--}o SiteOrSponsorComment : "siteOrSponsorComments"
ConceptProperty ||--|o CodeList : "codeList"
ConceptProperty ||--}o Coding : "coding"
ConceptProperty ||--}o Comment : "comments"
ConceptProperty ||--}o SiteOrSponsorComment : "siteOrSponsorComments"
CodeList ||--}o CodeListItem : "codeListItems"
CodeList ||--|o Resource : "externalCodeList"
CodeList ||--|o Standard : "standard"
CodeList ||--}o Coding : "coding"
CodeList ||--}o Comment : "comments"
CodeList ||--}o SiteOrSponsorComment : "siteOrSponsorComments"
Standard ||--}o Coding : "coding"
Resource ||--}o FormalExpression : "selection"
Resource ||--}o Coding : "coding"
FormalExpression ||--}o Parameter : "parameters"
FormalExpression ||--|o ReturnValue : "returnValue"
FormalExpression ||--}o Resource : "externalCodeLibs"
FormalExpression ||--}o Coding : "coding"
ReturnValue ||--}o Coding : "coding"
Parameter ||--}o CodeList : "codeList"
Parameter ||--}o ConceptProperty : "conceptProperty"
Parameter ||--}o ApplicabilityCondition : "applicableWhen"
Parameter ||--}o LogicalPredicate : "validationPredicates"
Parameter ||--}o Coding : "coding"
LogicalPredicate ||--}o RangeCheck : "rangeChecks"
LogicalPredicate ||--}o FormalExpression : "expressions"
LogicalPredicate ||--}o LogicalPredicate : "predicates"
LogicalPredicate ||--}o Coding : "coding"
LogicalPredicate ||--}o Comment : "comments"
LogicalPredicate ||--}o SiteOrSponsorComment : "siteOrSponsorComments"
RangeCheck ||--}o FormalExpression : "expressions"
RangeCheck ||--|o Check : "implementsCheck"
Check ||--}o IdentifiableElement : "appliesTo"
Check ||--}o FormalExpression : "expressions"
Check ||--}o Coding : "coding"
Check ||--}o Comment : "comments"
Check ||--}o SiteOrSponsorComment : "siteOrSponsorComments"
IdentifiableElement ||--}o Coding : "coding"
ApplicabilityCondition ||--}o LogicalPredicate : "predicates"
ApplicabilityCondition ||--}o Coding : "coding"
ApplicabilityCondition ||--}o Comment : "comments"
ApplicabilityCondition ||--}o SiteOrSponsorComment : "siteOrSponsorComments"
CodeListItem ||--|o Coding : "coding"
Dataflow ||--|| DataStructureDefinition : "structure"
Dataflow ||--}o Dimension : "dimensionConstraint"
Dataflow ||--}o Coding : "coding"
Dataflow ||--}o Comment : "comments"
Dataflow ||--}o SiteOrSponsorComment : "siteOrSponsorComments"
Dimension ||--|| Item : "item"
Dimension ||--|o Method : "missingHandling"
Dimension ||--|o Method : "imputation"
Dimension ||--}o Coding : "coding"
Dimension ||--}o Comment : "comments"
Dimension ||--}o SiteOrSponsorComment : "siteOrSponsorComments"
Method ||--}o FormalExpression : "expressions"
Method ||--}o DocumentReference : "documents"
Method ||--|o Concept : "implementsConcept"
Method ||--}o Coding : "coding"
Method ||--}o Comment : "comments"
Method ||--}o SiteOrSponsorComment : "siteOrSponsorComments"
Item ||--|o CodeList : "codeList"
Item ||--|o Method : "method"
Item ||--}o RangeCheck : "rangeChecks"
Item ||--}o ApplicabilityCondition : "applicableWhen"
Item ||--|o Origin : "origin"
Item ||--|o ConceptProperty : "conceptProperty"
Item ||--}o Coding : "coding"
Item ||--}o Comment : "comments"
Item ||--}o SiteOrSponsorComment : "siteOrSponsorComments"
Origin ||--}o SourceItem : "sourceItems"
Origin ||--}o DocumentReference : "documents"
SourceItem ||--|o Item : "item"
SourceItem ||--}o DocumentReference : "document"
SourceItem ||--}o Coding : "coding"
DataStructureDefinition ||--}o Dimension : "dimensions"
DataStructureDefinition ||--}o Measure : "measures"
DataStructureDefinition ||--}o DataAttribute : "attributes"
DataStructureDefinition ||--|o ComponentList : "grouping"
DataStructureDefinition ||--}o Item : "items"
DataStructureDefinition ||--}o Item : "uniqueKey"
DataStructureDefinition ||--}o Item : "keySequence"
DataStructureDefinition ||--}o ItemGroup : "slices"
DataStructureDefinition ||--|o Concept : "implementsConcept"
DataStructureDefinition ||--}o ApplicabilityCondition : "applicableWhen"
DataStructureDefinition ||--|o DefClass : "observationClass"
DataStructureDefinition ||--}o Coding : "security"
DataStructureDefinition ||--|o Timing : "validityPeriod"
DataStructureDefinition ||--|o Standard : "standard"
DataStructureDefinition ||--}o Coding : "coding"
DataStructureDefinition ||--}o Comment : "comments"
DataStructureDefinition ||--}o SiteOrSponsorComment : "siteOrSponsorComments"
Timing ||--|o Method : "imputation"
Timing ||--}o Coding : "coding"
DefClass ||--}o SubClass : "subClasses"
SubClass ||--}o SubClass : "subClasses"
ItemGroup ||--}o Item : "items"
ItemGroup ||--}o Item : "uniqueKey"
ItemGroup ||--}o Item : "keySequence"
ItemGroup ||--}o ItemGroup : "slices"
ItemGroup ||--|o Concept : "implementsConcept"
ItemGroup ||--}o ApplicabilityCondition : "applicableWhen"
ItemGroup ||--|o DefClass : "observationClass"
ItemGroup ||--}o Coding : "security"
ItemGroup ||--|o Timing : "validityPeriod"
ItemGroup ||--|o Standard : "standard"
ItemGroup ||--}o Coding : "coding"
ItemGroup ||--}o Comment : "comments"
ItemGroup ||--}o SiteOrSponsorComment : "siteOrSponsorComments"
ComponentList ||--}o Coding : "coding"
DataAttribute ||--|| Item : "item"
DataAttribute ||--|o Method : "missingHandling"
DataAttribute ||--|o Method : "imputation"
DataAttribute ||--}o Coding : "coding"
DataAttribute ||--}o Comment : "comments"
DataAttribute ||--}o SiteOrSponsorComment : "siteOrSponsorComments"
Measure ||--|| Item : "item"
Measure ||--|o Method : "missingHandling"
Measure ||--|o Method : "imputation"
Measure ||--}o Coding : "coding"
Measure ||--}o Comment : "comments"
Measure ||--}o SiteOrSponsorComment : "siteOrSponsorComments"
DataProduct ||--}o DataService : "inputPort"
DataProduct ||--}o DataService : "outputPort"
DataProduct ||--}o Dataflow : "inputDataflow"
DataProduct ||--}o Dataflow : "outputDataflow"
DataProduct ||--}o Dataset : "inputDataset"
DataProduct ||--}o Dataset : "outputDataset"
DataProduct ||--}o Policy : "hasPolicy"
DataProduct ||--}o ProvisionAgreement : "provisionAgreement"
DataProduct ||--}o Coding : "coding"
DataProduct ||--}o Comment : "comments"
DataProduct ||--}o SiteOrSponsorComment : "siteOrSponsorComments"
ProvisionAgreement ||--|o DataProvider : "provider"
ProvisionAgreement ||--|o Dataflow : "dataFlow"
ProvisionAgreement ||--|o Resource : "source"
ProvisionAgreement ||--}o Policy : "hasPolicy"
ProvisionAgreement ||--}o Coding : "coding"
ProvisionAgreement ||--}o Comment : "comments"
ProvisionAgreement ||--}o SiteOrSponsorComment : "siteOrSponsorComments"
Policy ||--}o Rule : "permission"
Policy ||--}o Rule : "prohibition"
Policy ||--}o Rule : "obligation"
Policy ||--}o Coding : "coding"
Policy ||--}o Comment : "comments"
Policy ||--}o SiteOrSponsorComment : "siteOrSponsorComments"
Rule ||--}o Constraint : "constraint"
Rule ||--}o Coding : "coding"
Constraint ||--}o Coding : "coding"
DataProvider ||--}o Dataflow : "providesDataFor"
DataProvider ||--}o ProvisionAgreement : "provisionAgreements"
DataProvider ||--}o Resource : "source"
DataProvider ||--|o Organization : "partOfOrganization"
DataProvider ||--}o Coding : "coding"
Organization ||--|o Organization : "partOfOrganization"
Organization ||--}o Coding : "coding"
Dataset ||--|o Dataflow : "describedBy"
Dataset ||--|o DataStructureDefinition : "structuredBy"
Dataset ||--}o Distribution : "distribution"
Dataset ||--}o Policy : "hasPolicy"
Dataset ||--}o Coding : "security"
Dataset ||--|o Timing : "validityPeriod"
Dataset ||--}o Coding : "coding"
Distribution ||--|o DataService : "accessService"
Distribution ||--|o Dataset : "isDistributionOf"
DataService ||--|o Distribution : "isAccessServiceOf"
DataService ||--}o FormalExpression : "selection"
DataService ||--}o Coding : "coding"
Dictionary ||--}o Coding : "terms"
Dictionary ||--}o Coding : "coding"
Query ||--}| IdentifiableElement : "about"
Query ||--}o Coding : "coding"
Query ||--}o Comment : "comments"
Query ||--}o SiteOrSponsorComment : "siteOrSponsorComments"
Relationship ||--|| IdentifiableElement : "subject"
Relationship ||--|| IdentifiableElement : "object"
Relationship ||--}o Coding : "coding"
Classes
| Class | Description |
|---|---|
| CodeListItem | A structured member of a CodeList that extends the Coding class with additional context-specific properties |
| Coding | A semantic reference that provides standardized codes and their meanings from controlled vocabularies |
| DataflowRelationship | A relationship element that associates a DataAttribute with a Dataflow, reported at the Dataset level |
| DatasetKey | An abstract identifier that comprises the cross-product of dimension values to identify a specific cross-section |
| GroupKey | A dimension subset that represents collections of dimensions that are subsets of the full dimension set, distinct from SeriesKey which includes Time dimensions |
| SeriesKey | A unique identifier that comprises the cross-product of dimension values including Time to identify observations, representing dimensions shared by all observations in a conceptual series |
| DefClass | The predefined CDISC model Class that applies to an ItemGroupDef. |
| DimensionRelationship | A relationship element that associates a DataAttribute with a specific Dimension at a specific level |
| Distribution | A technical representation that provides a specific format or access method for a dataset |
| Formatted | A mixin that provides slots for reporting, exchange, or storage formatting |
| Governed | A mixin that provides slots for audit trail and standards governance, including mandatory status, comments, and attribution |
| GovernedElement | |
| ApplicabilityCondition | A reusable, named applicability condition describing the circumstances under which a containing context applies. References one or more LogicalPredicates combined with AND. Distinct from LogicalPredicate (the expression itself): ApplicabilityCondition is the named, governed wrapper referenced from Items, ItemGroups, Parameters, and Analyses. |
| Check | A reusable validation check included in the metadata package, such as a published CORE rule. Linked many-to-many by reference to the metadata and/or data elements it applies to, and optionally citing an external published rule so checks stay reusable and loosely coupled. Distinct from RangeCheck, which is an inline executable comparison; a RangeCheck may implement a Check. |
| CodeList | A value set that defines a discrete collection of permissible values for an item, corresponding to the ODM CodeList construct |
| Comment | A descriptive element that contains explanatory text provided by a data or metadata handler |
| Concept | An abstract concept that can be referenced and specialised by data implementations. Holds ConceptProperties describing the concept's expected data shape. Multiple ItemGroups or Items can implement the same Concept, allowing standard biomedical concepts to be implemented differently across studies while remaining semantically aligned. |
| ConceptProperty | A reified property concept that exists within the context of its containing topic concept |
| CubeComponent | An abstract data field that represents a component in a data structure definition, referencing an Item for its definition |
| DataAttribute | A data cube property that describes additional characteristics or metadata about observations |
| Dimension | A data cube property that describes a categorical or hierarchical dimension |
| Measure | A data cube property that describes a measurable quantity or value |
| Dataflow | An abstract representation that defines data provision for different reference periods, where a Distribution and its Dataset are instances |
| DataProduct | A governed collection that represents a purpose-driven assembly of datasets and services with an owning team and lifecycle. The DataProduct defines the boundary of accountability between data producers and consumers. |
| Display | A rendered output of an analysis result. |
| Item | A data element that represents a specific piece of information within a defined context, with data type, constraints, and derivation methods |
| ItemGroup | A collection element that groups related items or subgroups within a specific context, used for tables, FHIR resource profiles, biomedical concept specializations, or form sections |
| DataStructureDefinition | A structural element that defines the organization of a data cube for analysis, including dimensions, attributes, and measures |
| LogicalPredicate | A reusable, composable, and nestable logical expression resolving to a boolean. Used for applicability conditions, validation rules, eligibility criteria, and skip logic. This is a data-model predicate — not a clinical condition (diagnosis). Implements usdm:Condition (the study-design predicate, distinct from the clinical FHIR Condition resource). |
| Method | A reusable computational procedure that describes how to derive values and can be referenced by Items. Analysis and Derivation concepts can be implemented by a Method. Properties can be referenced by Parameters in its expressions. |
| Analysis | Analysis extends Method to capture analysis-specific metadata including the reason for analysis, its purpose, and data traceability for the results used. Expressions and parameters from Method can be generic or implementation-specific. |
| Policy | A set of usage and access rules (ODRL) governing data. For a DTA this is typically an ODRL Agreement between an assigner (provider) and assignee (consumer), composed of permissions, prohibitions and obligations. |
| ProvisionAgreement | An agreement element that describes the contractual relationship between a Data Provider and a Data Consumer regarding data provision |
| Query | A reified query (discrepancy, request for clarification, or annotation) raised against one or more metadata and/or data elements. Modelled as an intermediate relationship node so a single query can relate to many elements (many-to-many) and be referenced rather than embedded. Internal queries originate within the organization; external queries (e.g. site or sponsor) carry their source. |
| SiteOrSponsorComment | A feedback element that contains comments from a site or sponsor, distinct from the general Comment class |
| Specification | The root specification container: a versioned, governed definition of the data model for a study or data product. Links items, item groups, methods, code lists, concepts, and study design references. Projects to Define-XML MetaDataVersion, FHIR ImplementationGuide, and OMOP CDM metadata. ODMSerializationMetadata is applied by the ODM output generator, not here. |
| GroupRelationship | A relationship element that associates a DataAttribute with a set of Dimensions, used when attribute values vary based on all group dimension values |
| Identifiable | A mixin that provides slots for making an entity addressable within a study or context |
| IdentifiableElement | |
| ComponentList | An abstract definition that specifies a list of components within a data structure definition, including various descriptor types |
| Constraint | An ODRL constraint expressed as leftOperand operator rightOperand, e.g. purpose eq "safety-reporting", or dateTime lt "2026-01-01". |
| Dataset | A collection element that groups observations sharing the same dimensionality, expressed as a set of unique dimensions within a Data Product context |
| Dictionary | A dictionary that defines a set of codes and their meanings |
| DocumentReference | A comprehensive reference element that points to an external document, combining elements from ODM and FHIR |
| FormalExpression | A computational element that defines the execution of a data derivation within a specific context |
| Organization | An entity that represents organizational information, such as a site or sponsor |
| DataConsumer | An organization element that receives data from a Data Provider under a ProvisionAgreement; the demand-side counterpart of DataProvider. |
| DataProvider | An organization element that provides data to a Data Consumer, which can be a sponsor, site, or any other entity that supplies data |
| Parameter | A variable element that describes an input used in a formal expression |
| Relationship | A semantic link that defines connections between elements such as Items or ItemGroups, capturing relationships like "is the unit for" or "assesses seriousness of" |
| Resource | An external reference that serves as the source for a Dataset, ItemGroup, or Item |
| DataService | A service element that provides an API or endpoint for serving or receiving data |
| ReturnValue | An output specification that defines the details of what a formal expression returns |
| Rule | An ODRL rule asserting that an action is permitted, prohibited, or required on a target asset, optionally restricted by constraints. |
| Standard | A collection element that groups related standards within a specific context, used for defining CDISC implementation guides and controlled terminologies |
| Timing | A temporal element that describes the timing of an event or occurrence, which can be absolute, relative, or nominal |
| User | An entity that represents information about a specific user of a clinical data collection or data management system |
| IsProfile | A mixin that provides additional metadata for FHIR resources and Data Products, including profiles, security tags, and validity periods |
| IsSdmxDataset | A mixin that provides additional metadata specific to SDMX Datasets |
| Labelled | A mixin that provides slots for detailing meanings and multilingual descriptions |
| MeasureRelationship | A relationship element that associates a DataAttribute with a Measure |
| ObservationRelationship | A relationship element that associates a DataAttribute with an Observation, allowing value-level Items to be reused across multiple different Views |
| ODMItemSerialization | A mixin providing ODM/CDISC-specific item attributes meaningful only in ODM/Define-XML serialization: CRF completion instructions, CDISC notes, implementation notes, collection exception predicates, and pre-specified values. Applied by the ODM output generator. Not part of the canonical Item. |
| ODMSerializationMetadata | A mixin providing ODM/Define-XML file-level attributes required only when serializing to ODM or Define-XML format. Applied by the ODM output generator, not by the canonical model itself. These attributes (fileOID, odmVersion, defineVersion, etc.) have no meaning in FHIR, OMOP, or SDMX projections. |
| ODMStandardReference | A mixin providing attributes for CDISC standards compliance indication. Applied when serializing to Define-XML context. Not canonical. |
| Origin | A provenance element that describes the source of data for an item |
| RangeCheck | A validation element that performs a simple comparison check between a referenced item's value and specified values, resolving to a boolean result |
| SourceItem | A data source that provides the origin of information for an item |
| StudyMetadata | A mixin that provides study-level metadata attributes including study identification and protocol information |
| SubClass | A specific SubClass within a CDISC model Class. |
| TranslatedText | |
| Translation | A text representation that provides content in a specific language, used for multilingual support |
| Versioned | A mixin that provides version and connectivity information, including version numbers and resource references |
Slots
| Slot | Description |
|---|---|
| OID | Local identifier within this study/context. Use CDISC OID format for regulatory submissions, or simple strings for internal use. |
| uuid | Universal unique identifier |
| mandatory | Is this element required? |
| comments | Comment on the element, such as a rationale for its inclusion or exclusion |
| siteOrSponsorComments | Comment on the element, such as a rationale for its inclusion or exclusion |
| purpose | Purpose or rationale for this data element |
| lastUpdated | When the resource was last updated |
| owner | Party responsible for this element |
| wasDerivedFrom | Reference to another item that this item implements or extends, e.g. a template Item definition. |
| name | Short name or identifier, used for field names |
| description | Detailed description, shown in tooltips |
| coding | Semantic tags for this element |
| label | Human-readable label, shown in UIs |
| aliases | Alternative name or identifier |
| decimalDigits | For decimal values, the number of digits after the decimal point |
| displayFormat | A display format for the item |
| significantDigits | For numeric values, the number of significant digits |
| version | The version of the external resources |
| href | Machine-readable instructions to obtain the resource e.g. FHIR path, URL |
| profile | Profiles this resource claims to conform to |
| security | Security tags applied to this resource |
| authenticator | Who/what authenticated the resource |
| validityPeriod | Time period during which the resource is valid |
| role | Identifies the role of the item within the containing context, taken from the roleCodeList |
| roleCodeList | Reference to the CodeList that defines the roles for this item |
| hasNoData | True if this is a manifest and there is no data for this item |
| crfCompletionInstructions | CRFCompletionInstructions reference: Instructions for the clinical site on how to enter collected information on the CRF |
| cdiscNotes | CDISCNotes reference: Explanatory text for the variable |
| implementationNotes | ImplementationNotes reference: Further information, such as rationale and implementation instructions, on how to implement the CRF data collection fields |
| collectionExceptionPredicate | Logical predicate defining when data collection for this item may be exempted. |
| preSpecifiedValue | Prefill value or a default value for a field that is automatically populated. |
| standard | Reference to the standard being implemented |
| isNonStandard | One or more members of this set are non-standard extensions |
| fileOID | Unique identifier for the ODM file |
| asOfDateTime | Date and time when the data snapshot was taken |
| creationDateTime | Date and time when the ODM file was created |
| odmVersion | Version of the ODM standard used |
| fileType | Type of ODM file (e.g., Snapshot, Transactional) |
| originator | Organization or system that created the ODM file |
| sourceSystem | Source system that generated the data |
| sourceSystemVersion | Version of the source system |
| context | Define-XML context (usually "Other" for Define-XML) |
| defineVersion | Version of Define-XML specification used |
| studyOID | Unique identifier for the study |
| studyName | Name of the study |
| studyDescription | Description of the study |
| protocolName | Protocol name for the study |
| itemGroups | Item groups, containing items, defined in this version of the metadata |
| items | Template or top-level items (not belonging to any item group) defined in this version of the metadata |
| predicates | Reusable logical predicates defined in this specification. |
| applicabilityConditions | Named applicability conditions defined in this specification. |
| methods | Methods defined in this version of the metadata. |
| analyses | Analyses defined in this version of the metadata. |
| codeLists | Code lists defined in this version of the metadata. |
| codings | Codings defined in this version of the metadata |
| concepts | Structured Concepts defined in this version of the metadata |
| relationships | Relationships between items, item groups, and other elements in this version of the metadata. |
| queries | Queries raised against metadata and/or data elements in this specification. Each Query references its target element(s) by OID, so the same query can relate to many metadata and data elements (many-to-many). |
| checks | Reusable validation checks (e.g. published CORE rules) included in this metadata package. Each Check references the elements it applies to by OID and may cite an external published rule, enabling reuse and loose coupling. |
| dictionaries | Dictionaries defined in this version of the metadata |
| standards | Standards defined in this version of the metadata |
| annotatedCRFs | Reference to annotated case report forms |
| resources | References to resources and documents that describe this version of the metadata. |
| dataProducts | Indexed data flows with clear ownership |
| displays | Displays defined in this version of the metadata. |
| usdmStudyDesignId | OID or URI reference to the USDM StudyDesign that this specification implements. When present, arms, epochs, and scheduled visit slots are resolved from the referenced USDM instance. The USDM study design is the authoritative source for EPOCH, VISITNUM, ARM, and timing anchors; DDS does not redeclare them. |
| dataType | The data type of the item. |
| length | The maximum length of the data item in characters. |
| codeList | Reference to the CodeList that constrains the item values. |
| method | Reference to the Method element that describes how to derive this item's value. |
| rangeChecks | Range checks applied to this item (e.g. edit checks, CORE rules) |
| applicableWhen | References to different situations that define when this item applies. Multiple applicabilityConditions are combined with OR logic: the item applies if ANY referenced ApplicabilityCondition matches. Within each ApplicabilityCondition, conditions are combined with AND logic: all conditions must be true. Example: whereClause: ["WC.SYSBP", "WC.DIABP"] means the item applies when (all conditions in WC.SYSBP are true) OR (all conditions in WC.DIABP are true). |
| origin | The origin of the data |
| conceptProperty | Reference to a abstract concept property that this item is a specialization / instance of. |
| domain | Domain abbreviation for the dataset. |
| structure | Data structure of the item group, indicating how the records are organized. If this is a FHIR Resource, is it nested or flattened? If this is a structured concept, is it a Biomedical/Derivation/Analysis concept? |
| isReferenceData | Set to Yes if this is a reference item group. |
| type | Type of item group |
| uniqueKey | Unordered set of Items whose combined values uniquely identify a record in this dataset (the record key). Each entry is an OID reference to an Item in the items array. Order is not significant for uniqueness — use keySequence for sort order. Splitting uniqueness from sorting resolves the previous overloading of keySequence. |
| keySequence | Ordered list of Items defining the default sort order for this dataset. Each entry is an OID reference to an Item in the items array; order determines sorting precedence and merge operations. May reference Items that are not part of uniqueKey. Distinct from uniqueKey, which establishes record uniqueness. |
| slices | Slices are specific subset ItemGroups that belong to, or are used by this ItemGroup |
| implementsConcept | Reference to a abstract concept topic that this item group is a specialization of |
| observationClass | Identifies the predefined CDISC model Class. |
| subClasses | One or more SubClasses that further identify the specific SubClass within a Class. |
| parentClass | Name of the parent Class or SubClass following CDISC Controlled Terminology. |
| subject | The starting element of the relationship (e.g., an Item or ItemGroup). |
| object | The ending element of the relationship. |
| predicateTerm | Short variable relationship linking phrase for programming purposes. |
| linkingPhrase | Variable relationship descriptive linking phrase. |
| about | The metadata and/or data element(s) this query concerns, referenced by OID. Multivalued and non-inlined to support many-to-many linkage across both metadata (e.g. Item, ItemGroup) and data (e.g. Dataset) elements. |
| queryType | Whether the query is internal or external (e.g. site or sponsor originated). |
| text | The query content. |
| status | Workflow status of the query (e.g. open, answered, closed). |
| source | The party that raised the query. |
| language | The language of the translation |
| value | The translated text |
| translations | |
| formatName | Name of a standard format definition |
| codeListItems | The individual values that make up this CodeList. The type of CodeListItem included determines its behaviour |
| externalCodeList | Reference to a code list that is defined externally to this study |
| codedValue | The value of the CodeListItem before decoding |
| decode | The decoded value of the CodeListItem |
| weight | Numeric significance of the code (e.g., for scoring) |
| other | Flag to indicate that the term represents "other" content |
| documents | References to documents that contain or are referenced by this comment |
| code | The code value |
| codeSystem | The code system identifier |
| codeSystemVersion | The code system version |
| aliasType | How this coding is related in the context of its parent element |
| terms | Terms in this dictionary - leave this empty in most cases to keep the file small |
| publishedBy | Associates the Data Provider that reports/publishes the data. |
| properties | Properties of the reified object, which can be other governed elements or simple values |
| minOccurs | Minimum number of occurrences of this property in the context. Set to >0 to mandate some number of occurrences |
| maxOccurs | Maximum number of occurrences of this property in the context. Leave empty for unbounded. Set to 0 to disable property |
| implementsPredicate | Reference to an external (e.g. USDM) predicate/condition definition that this implements |
| expressions | Logical expression, resolving to a boolean, that implements this predicate in a specific context |
| operator | Logical operator for combining child conditions or range checks. Defaults to ALL if not specified. |
| comparator | The type of comparison to be performed |
| checkValues | Values to compare against |
| item | Reference to the Item element whose value is being checked. If not specified, check applies to the enclosing context |
| softHard | Indicates whether a validation check is an error ("Hard") or a warning ("Soft") |
| implementsCheck | Optional reference (by OID) to a reusable Check (e.g. a published CORE rule) that this inline RangeCheck implements. |
| appliesTo | The metadata and/or data element(s) this check applies to, referenced by OID. Multivalued and non-inlined for many-to-many, loosely coupled linkage. |
| externalReference | URI or CURIE of the published rule this check is sourced from (e.g. a CORE rule identifier), enabling reuse across metadata packages. |
| severity | Whether a failure is an error ("Hard") or a warning ("Soft"). |
| expression | The actual text of the formal expression (renamed from 'code' for disambiguation). |
| returnType | Return type of the expression |
| parameters | Parameters used in the expression |
| returnValue | Return value details |
| externalCodeLibs | External code libraries referenced |
| document | Reference to an external document |
| resource | Path to a resource (e.g. File, FHIR datasource) that is the source of this item |
| defaultValue | A default value for the parameter. |
| validationPredicates | Validation predicates that constrain this parameter's value beyond controlled terminology. All must be satisfied (AND logic). Distinct from applicableWhen which determines if the parameter is needed at all. |
| required | Indicates whether this parameter must be provided when the containing expression is evaluated (technical constraint). |
| valueList | A list of possible return values. |
| sourceItems | Source items for this origin |
| sourceType | who made the comment, such as Investigator, Sponsor. |
| userType | User's role in the study. |
| userName | The username of the user. |
| fullName | The full name of the user. |
| organization | The organization the user belongs to. |
| location | The physical location of the organization. |
| address | The address of the organization. |
| partOfOrganization | Reference to a parent organization if this organization is part of a larger entity. |
| publishingSet | Publishing Set of a Controlled Terminology |
| resourceType | Type of resource (e.g., "ODM", "HL7-FHIR", "HL7-CDA", "HL7-v2", "OpenEHR-extract") |
| attribute | Field provided by the Name attribute where the data or information can be obtained. Examples are "valueQuantity.value" or "valueQuantity.unit". |
| selection | Machine-executable instructions for selecting data from the resource. |
| title | Document title |
| leafID | Leaf identifier for document reference in Define-XML |
| pages | Reference to specific pages in a PDF document |
| relationship | Relationship to the referencing entity |
| isNominal | Indicates whether the timing is nominal (event-based) or not. |
| relativeTo | The protocol anchor this timing is relative to. Either a TimingLandmark (well-known protocol event such as RANDOMIZATION or FIRST_DOSE) or a free-form OID/identifier referencing a USDM ScheduledActivityInstance. |
| relativeFrom | The protocol anchor from which this timing is measured. Either a TimingLandmark or a USDM ScheduledActivityInstance OID reference. |
| windowLower | Start date/time of the timing |
| windowUpper | End date/time of the timing |
| recalled | Indicates whether the timing is recalled or not (recalled timings are less reliable). |
| frequency | Frequency. Use dose frequency terminology e.g. "BID" if applicable. |
| imputation | The imputation method used for the Timing. |
| dimensions | |
| measures | |
| attributes | |
| grouping | An association to a set of metadata concepts that have an identified structural role in a Data Structure Definition. |
| evolvingStructure | |
| dimensionConstraint | Subset of dimensions that are agreed upon by the dataflow and must be included. |
| deliverySchedule | Recurring transfer/delivery schedule agreed for this flow. The domain-neutral default is an ISO-8601 repeating interval string (e.g. "R/2025-01-01/P1M"); use a Timing object only when delivery must be anchored to a clinical occurrence. Agreement-level schedule; concrete reporting periods of each delivered Dataset are carried by IsSdmxDataset.reportingBegin/reportingEnd/dataExtractionDate. |
| action | Defines the action to be taken by the recipient system (information, append, replace, delete) |
| reportingBegin | A specific time period in a known system of time periods that identifies the start period of a report. |
| reportingEnd | A specific time period in a known system of time periods that identifies the end period of a report. |
| dataExtractionDate | A specific time period that identifies the date and time that the data are extracted from a data source. |
| validFrom | Indicates the inclusive start time indicating the validity of the information in the data set. |
| validTo | Indicates the inclusive end time indicating the validity of the information in the data set. |
| publicationYear | Specifies the year of publication of the data or metadata in terms of whatever provisioning agreements might be in force. |
| publicationPeriod | Specifies the period of publication of the data or metadata in terms of whatever provisioning agreements might be in force. |
| describedBy | Associates a Dataflow and thereby a Data Structure Definition to the data set. |
| structuredBy | Associates the Data Structure Definition that defines the structure of the Data Set. Note that the Data Structure Definition is the same as that associated (non-mandatory) to the Dataflow. |
| keys | Series and Group keys in the data that are associated with dimensions in this structure |
| datasetType | Type or classification of the dataset |
| distribution | Representations of this dataset in various formats or access methods |
| conformsTo | Specification or standard that this dataset conforms to |
| hasPolicy | Access or usage policy applied to this dataset |
| informationSensitivityClassification | Classification of the dataset's sensitivity or confidentiality |
| keyValues | List of Key Values that comprise each key, separated by a dot e.g. SUBJ001.VISIT2.BMI |
| attributeValues | Association to the Attribute Values relating to Key |
| missingHandling | The method for handling missing values in the measure property |
| components | The components that make up this component list |
| measure | |
| dataFlow | |
| groupKey | Set of dimensions that this definition depends on |
| dataProductOwner | The person or team accountable for this data product |
| lifecycleStatus | Current lifecycle status of the data product |
| inputPort | Services that provide input into this data product |
| outputPort | Services that expose output from this data product |
| inputDataflow | Description of the input interface before concrete Datasets exist. Dataflows referenced here represent the demand side of a ProvisionAgreement. |
| outputDataflow | Description of the output interface before concrete Datasets exist. Dataflows referenced here represent the supply side of a ProvisionAgreement. |
| inputDataset | Source datasets used by the data product |
| outputDataset | Output datasets produced by the data product |
| provisionAgreement | Reference(s) to standalone Data Transfer Agreements (ProvisionAgreement) that govern this product's flows. Referenced by OID/URI, not embedded, so the agreement remains an independently maintained artifact. |
| accessService | Service that provides access to this distribution |
| isDistributionOf | Dataset this distribution represents |
| format | File format or serialization used in the distribution |
| isAccessServiceOf | Distribution(s) for which this service provides access |
| protocol | Protocol used by the service (e.g., HTTPS, FTP) |
| securitySchemaType | Security or authentication method used (e.g., OAuth2) |
| providesDataFor | The Dataflows that this provider supplies data for |
| provisionAgreements | The ProvisionAgreements that this provider has with Data Consumers |
| provider | The Data Provider that is part of this agreement. Inlined so a standalone DTA is a self-contained snapshot. |
| consumer | The Data Consumer that is part of this agreement |
| consumesDataFrom | The Dataflows that this consumer receives data from |
| policyType | ODRL policy subtype (Set, Offer, Agreement) |
| assigner | The party issuing/granting the policy (typically the provider) |
| assignee | The party the policy is granted to (typically the consumer) |
| permission | Rules granting the ability to perform an action (odrl:permission) |
| prohibition | Rules forbidding an action (odrl:prohibition) |
| obligation | Duties that must be fulfilled (odrl:obligation) |
| target | The asset the rule applies to (odrl:target), e.g. the Dataflow or Dataset OID/IRI under agreement. |
| constraint | Conditions that narrow when/how the rule applies (odrl:constraint) |
| leftOperand | The subject of the constraint (odrl:leftOperand), e.g. "purpose", "recipient", "dateTime" |
| rightOperand | The value compared against (odrl:rightOperand) |
| unit | Unit of the rightOperand, where applicable |
| analysisReason | The reason this analysis was performed. |
| analysisPurpose | The purpose or role of this analysis in the study. |
| analysisMethod | Generic method used to perform this analysis. |
| inputData | Datasets or slices/subsets of datasets asked for by this analysis. If a Item is referenced by a Parameter e.g. Analysis Variable, make sure to include its parent ItemGroup here. |
| inputDataflows | Dataflows that supply input data for this analysis. Replaces Dataflow.analysisMethod (which had the dependency backwards — a data contract should not know which analyses consume it). |
| analysis | Analysis result this display represents. |
| displayType | The type of display this result represents. e.g. table, listing, figure, dashboard. |
Enumerations
| Enumeration | Description |
|---|---|
| AliasPredicate | An enumeration that defines permissible values for the relationship between an element and its alias |
| Comparator | An enumeration that defines the types of comparison operations available for a RangeCheck |
| UserType | An enumeration that defines the types of users in a clinical data collection or management system |
| OrganizationType | An enumeration that defines the types of organizations involved in clinical research |
| PolicyType | ODRL policy subtypes. |
| ConstraintOperator | ODRL constraint operators. |
| SoftHard | An enumeration that indicates whether a validation check should be treated as an error or a warning |
| QueryType | Whether a Query originates inside the organization (internal) or from an external party such as a site or sponsor (external). |
| MethodType | An enumeration that defines the types of computational methods available for data processing |
| DataType | An enumeration that defines the fundamental data types available for items |
| OriginType | An enumeration that defines the types of origins for data items. Values sourced from NCI Thesaurus subset C170449. |
| OriginSource | An enumeration that defines the sources of data origin. Values sourced from NCI Thesaurus subset C170450. |
| ItemGroupType | An enumeration that defines the roles of an item group within a specific context |
| TimingLandmark | Well-known protocol reference points that a Timing can be expressed relative to. Corresponds to USDM TimingRelativeToLandmark. For visit-specific anchors not covered by this enum, use a USDM ScheduledActivityInstance OID reference in Timing.relativeTo as a free string. |
| TimingType | An enumeration that defines CDISC timing type values indicating the temporal relationship of an observation to a reference point |
| LinkingPhraseEnum | An enumeration that defines variable relationship descriptive linking phrases from the COSMoS SDTM BC model |
| PredicateTermEnum | An enumeration that defines short variable relationship linking phrases for programming purposes from the COSMoS SDTM BC model |
| DataProductLifecycleStatus | An enumeration that defines the lifecycle stages for a DataProduct |
| StandardName | An enumeration that defines permissible values for standard names |
| StandardType | An enumeration that defines permissible values for standard types |
| PublishingSet | An enumeration that defines permissible values for publishing sets |
| StandardStatus | An enumeration that defines permissible values for standard status |
| LogicalOperator | Logical operators for combining conditions in Boolean expressions. For complex expressions, use the EXPRESSION value. |
Types
| Type | Description |
|---|---|
| String | A character string |
| Integer | An integer |
| Boolean | A binary (true or false) value |
| Float | A real number that conforms to the xsd:float specification |
| Double | A real number that conforms to the xsd:double specification |
| Decimal | A real number with arbitrary precision that conforms to the xsd:decimal specification |
| Time | A time object represents a (local) time of day, independent of any particular day |
| Date | a date (year, month and day) in an idealized calendar |
| Datetime | The combination of a date and time |
| DateOrDatetime | Either a date or a datetime |
| Uriorcurie | a URI or a CURIE |
| Curie | a compact URI |
| Uri | a complete URI |
| Ncname | Prefix part of CURIE |
| Objectidentifier | A URI or CURIE that represents an object in the model. |
| Nodeidentifier | A URI, CURIE or BNODE that represents a node in a model. |
| Jsonpointer | A string encoding a JSON Pointer. The value of the string MUST conform to JSON Point syntax and SHOULD dereference to a valid object within the current instance document when encoded in tree form. |
| Jsonpath | A string encoding a JSON Path. The value of the string MUST conform to JSON Point syntax and SHOULD dereference to zero or more valid objects within the current instance document when encoded in tree form. |
| Sparqlpath | A string encoding a SPARQL Property Path. The value of the string MUST conform to SPARQL syntax and SHOULD dereference to zero or more valid objects within the current instance document when encoded as RDF. |
Subsets
| Subset | Description |
|---|---|