Clinical Document Architecture
2.0.2-sd - release

This page is part of the CDA: Clinical Document Architecture (v2.0.2-sd: CDA 2.0 - Informative) generated with FHIR (HL7® FHIR® Standard) v5.0.0. This is the current published version in its permanent home (it will always be available at this URL). For a full list of available versions, see the Directory of published versions

Logical Model: Component - JSON Profile

Active as of 2025-12-12

JSON representation of the Component logical model.

Raw json | Download

{
  "resourceType" : "StructureDefinition",
  "id" : "Component",
  "text" : {
    "status" : "generated",
    "div" : "<div xmlns=\"http://www.w3.org/1999/xhtml\">\n      <p>The CDA body can be either an unstructured blob, or can be comprised of structured markup. Every CDA document has exactly one body, associated with the ClinicalDocument class through the component relationship.</p>\n    </div>"
  },
  "extension" : [
    {
      "url" : "http://hl7.org/fhir/tools/StructureDefinition/logical-target",
      "_valueBoolean" : {
        "extension" : [
          {
            "url" : "http://hl7.org/fhir/StructureDefinition/data-absent-reason",
            "valueCode" : "not-applicable"
          }
        ]
      }
    },
    {
      "url" : "http://hl7.org/fhir/tools/StructureDefinition/xml-namespace",
      "valueUri" : "urn:hl7-org:v3"
    },
    {
      "url" : "http://hl7.org/fhir/tools/StructureDefinition/xml-name",
      "valueString" : "component"
    },
    {
      "url" : "http://hl7.org/fhir/tools/StructureDefinition/logical-container",
      "valueUri" : "http://hl7.org/cda/stds/core/StructureDefinition/ClinicalDocument"
    },
    {
      "url" : "http://hl7.org/fhir/tools/StructureDefinition/type-profile-style",
      "valueCode" : "cda"
    }
  ],
  "url" : "http://hl7.org/cda/stds/core/StructureDefinition/Component",
  "version" : "2.0.2-sd",
  "name" : "Component",
  "title" : "Component (CDA Class)",
  "status" : "active",
  "experimental" : false,
  "date" : "2025-12-12T15:26:32+11:00",
  "publisher" : "Health Level 7",
  "contact" : [
    {
      "name" : "HL7 International - Structured Documents",
      "telecom" : [
        {
          "system" : "url",
          "value" : "http://www.hl7.org/Special/committees/structure"
        },
        {
          "system" : "email",
          "value" : "structdog@lists.HL7.org"
        }
      ]
    }
  ],
  "description" : "The CDA body can be either an unstructured blob, or can be comprised of structured markup. Every CDA document has exactly one body, associated with the ClinicalDocument class through the component relationship.",
  "fhirVersion" : "5.0.0",
  "mapping" : [
    {
      "identity" : "rim",
      "uri" : "http://hl7.org/v3",
      "name" : "RIM Mapping"
    }
  ],
  "kind" : "logical",
  "abstract" : false,
  "type" : "http://hl7.org/cda/stds/core/StructureDefinition/Component",
  "baseDefinition" : "http://hl7.org/cda/stds/core/StructureDefinition/InfrastructureRoot",
  "derivation" : "specialization",
  "snapshot" : {
    "extension" : [
      {
        "url" : "http://hl7.org/fhir/tools/StructureDefinition/snapshot-base-version",
        "valueString" : "2.0.2-sd"
      }
    ],
    "element" : [
      {
        "id" : "Component",
        "path" : "Component",
        "short" : "Base for all types and resources",
        "definition" : "Defines the basic properties of every data value. This is an abstract type, meaning that no value can be just a data value without belonging to any concrete type. Every concrete type is a specialization of this general abstract DataValue type.",
        "min" : 1,
        "max" : "1",
        "base" : {
          "path" : "Base",
          "min" : 0,
          "max" : "*"
        },
        "constraint" : [
          {
            "key" : "body-choice",
            "severity" : "error",
            "human" : "Choice of the body required.",
            "expression" : "(nonXMLBody | structuredBody).count() = 1"
          }
        ],
        "isModifier" : false,
        "mapping" : [
          {
            "identity" : "rim",
            "map" : "n/a"
          }
        ]
      },
      {
        "id" : "Component.nullFlavor",
        "path" : "Component.nullFlavor",
        "representation" : [
          "xmlAttr"
        ],
        "label" : "Exceptional Value Detail",
        "definition" : "If a value is an exceptional value (NULL-value), this specifies in what way and why proper information is missing.",
        "min" : 0,
        "max" : "1",
        "base" : {
          "path" : "ANY.nullFlavor",
          "min" : 0,
          "max" : "1"
        },
        "type" : [
          {
            "code" : "code",
            "profile" : [
              🔗 "http://hl7.org/cda/stds/core/StructureDefinition/cs-simple"
            ]
          }
        ],
        "binding" : {
          "strength" : "required",
          "valueSet" : "http://hl7.org/cda/stds/core/ValueSet/CDANullFlavor"
        }
      },
      {
        "id" : "Component.realmCode",
        "path" : "Component.realmCode",
        "definition" : "When valued in an instance, this attribute signals the imposition of realm-specific constraints. The value of this attribute identifies the realm in question",
        "min" : 0,
        "max" : "*",
        "base" : {
          "path" : "InfrastructureRoot.realmCode",
          "min" : 0,
          "max" : "*"
        },
        "type" : [
          {
            "code" : "http://hl7.org/cda/stds/core/StructureDefinition/CS"
          }
        ]
      },
      {
        "id" : "Component.typeId",
        "path" : "Component.typeId",
        "definition" : "When valued in an instance, this attribute signals the imposition of constraints defined in an HL7-specified message type. This might be a common type (also known as CMET in the messaging communication environment), or content included within a wrapper. The value of this attribute provides a unique identifier for the type in question.",
        "min" : 0,
        "max" : "1",
        "base" : {
          "path" : "InfrastructureRoot.typeId",
          "min" : 0,
          "max" : "1"
        },
        "type" : [
          {
            "code" : "http://hl7.org/cda/stds/core/StructureDefinition/II"
          }
        ],
        "constraint" : [
          {
            "key" : "II-1",
            "severity" : "error",
            "human" : "An II instance must have either a root or an nullFlavor.",
            "expression" : "root.exists() or nullFlavor.exists()",
            "source" : "http://hl7.org/cda/stds/core/StructureDefinition/InfrastructureRoot"
          }
        ]
      },
      {
        "id" : "Component.typeId.nullFlavor",
        "path" : "Component.typeId.nullFlavor",
        "representation" : [
          "xmlAttr"
        ],
        "label" : "Exceptional Value Detail",
        "definition" : "If a value is an exceptional value (NULL-value), this specifies in what way and why proper information is missing.",
        "min" : 0,
        "max" : "1",
        "base" : {
          "path" : "ANY.nullFlavor",
          "min" : 0,
          "max" : "1"
        },
        "type" : [
          {
            "code" : "code",
            "profile" : [
              🔗 "http://hl7.org/cda/stds/core/StructureDefinition/cs-simple"
            ]
          }
        ],
        "binding" : {
          "strength" : "required",
          "valueSet" : "http://hl7.org/cda/stds/core/ValueSet/CDANullFlavor"
        }
      },
      {
        "id" : "Component.typeId.assigningAuthorityName",
        "path" : "Component.typeId.assigningAuthorityName",
        "representation" : [
          "xmlAttr"
        ],
        "label" : "Assigning Authority Name",
        "definition" : "A human readable name or mnemonic for the assigning authority. The Assigning Authority Name has no computational value. The purpose of a Assigning Authority Name is to assist an unaided human interpreter of an II value to interpret the authority. Note: no automated processing must depend on the assigning authority name to be present in any form.",
        "min" : 0,
        "max" : "1",
        "base" : {
          "path" : "II.assigningAuthorityName",
          "min" : 0,
          "max" : "1"
        },
        "type" : [
          {
            "code" : "string",
            "profile" : [
              🔗 "http://hl7.org/cda/stds/core/StructureDefinition/st-simple"
            ]
          }
        ]
      },
      {
        "id" : "Component.typeId.displayable",
        "path" : "Component.typeId.displayable",
        "representation" : [
          "xmlAttr"
        ],
        "label" : "Displayable",
        "definition" : "Specifies if the identifier is intended for human display and data entry (displayable = true) as opposed to pure machine interoperation (displayable = false).",
        "min" : 0,
        "max" : "1",
        "base" : {
          "path" : "II.displayable",
          "min" : 0,
          "max" : "1"
        },
        "type" : [
          {
            "code" : "boolean",
            "profile" : [
              🔗 "http://hl7.org/cda/stds/core/StructureDefinition/bl-simple"
            ]
          }
        ]
      },
      {
        "id" : "Component.typeId.root",
        "path" : "Component.typeId.root",
        "representation" : [
          "xmlAttr"
        ],
        "label" : "Root",
        "definition" : "Identifies the type as an HL7 Registered model",
        "min" : 1,
        "max" : "1",
        "base" : {
          "path" : "II.root",
          "min" : 0,
          "max" : "1"
        },
        "type" : [
          {
            "code" : "string",
            "profile" : [
              🔗 "http://hl7.org/cda/stds/core/StructureDefinition/oid"🔗 ,
              "http://hl7.org/cda/stds/core/StructureDefinition/uuid"🔗 ,
              "http://hl7.org/cda/stds/core/StructureDefinition/ruid"
            ]
          }
        ],
        "fixedString" : "2.16.840.1.113883.1.3"
      },
      {
        "id" : "Component.typeId.extension",
        "path" : "Component.typeId.extension",
        "representation" : [
          "xmlAttr"
        ],
        "label" : "Extension",
        "definition" : "A character string as a unique identifier within the scope of the identifier root.",
        "min" : 1,
        "max" : "1",
        "base" : {
          "path" : "II.extension",
          "min" : 0,
          "max" : "1"
        },
        "type" : [
          {
            "code" : "string",
            "profile" : [
              🔗 "http://hl7.org/cda/stds/core/StructureDefinition/st-simple"
            ]
          }
        ]
      },
      {
        "id" : "Component.templateId",
        "path" : "Component.templateId",
        "definition" : "When valued in an instance, this attribute signals the imposition of a set of template-defined constraints. The value of this attribute provides a unique identifier for the templates in question",
        "min" : 0,
        "max" : "*",
        "base" : {
          "path" : "InfrastructureRoot.templateId",
          "min" : 0,
          "max" : "*"
        },
        "type" : [
          {
            "code" : "http://hl7.org/cda/stds/core/StructureDefinition/II"
          }
        ]
      },
      {
        "id" : "Component.typeCode",
        "path" : "Component.typeCode",
        "representation" : [
          "xmlAttr"
        ],
        "min" : 0,
        "max" : "1",
        "base" : {
          "path" : "Component.typeCode",
          "min" : 0,
          "max" : "1"
        },
        "type" : [
          {
            "code" : "code",
            "profile" : [
              🔗 "http://hl7.org/cda/stds/core/StructureDefinition/cs-simple"
            ]
          }
        ],
        "fixedCode" : "COMP",
        "binding" : {
          "strength" : "required",
          "valueSet" : "http://terminology.hl7.org/ValueSet/v3-ActRelationshipHasComponent"
        }
      },
      {
        "id" : "Component.contextConductionInd",
        "path" : "Component.contextConductionInd",
        "representation" : [
          "xmlAttr"
        ],
        "min" : 0,
        "max" : "1",
        "base" : {
          "path" : "Component.contextConductionInd",
          "min" : 0,
          "max" : "1"
        },
        "type" : [
          {
            "code" : "boolean",
            "profile" : [
              🔗 "http://hl7.org/cda/stds/core/StructureDefinition/bl-simple"
            ]
          }
        ],
        "fixedBoolean" : true
      },
      {
        "id" : "Component.nonXMLBody",
        "path" : "Component.nonXMLBody",
        "short" : "A body in some format other than XML.",
        "min" : 0,
        "max" : "1",
        "base" : {
          "path" : "Component.nonXMLBody",
          "min" : 0,
          "max" : "1"
        },
        "type" : [
          {
            "code" : "http://hl7.org/cda/stds/core/StructureDefinition/NonXMLBody"
          }
        ]
      },
      {
        "id" : "Component.structuredBody",
        "path" : "Component.structuredBody",
        "short" : "A body comprised of one or more document sections.",
        "min" : 0,
        "max" : "1",
        "base" : {
          "path" : "Component.structuredBody",
          "min" : 0,
          "max" : "1"
        },
        "type" : [
          {
            "code" : "http://hl7.org/cda/stds/core/StructureDefinition/StructuredBody"
          }
        ]
      }
    ]
  },
  "differential" : {
    "element" : [
      {
        "id" : "Component",
        "path" : "Component",
        "min" : 1,
        "max" : "1",
        "constraint" : [
          {
            "key" : "body-choice",
            "severity" : "error",
            "human" : "Choice of the body required.",
            "expression" : "(nonXMLBody | structuredBody).count() = 1"
          }
        ]
      },
      {
        "id" : "Component.typeCode",
        "path" : "Component.typeCode",
        "representation" : [
          "xmlAttr"
        ],
        "min" : 0,
        "max" : "1",
        "type" : [
          {
            "code" : "code",
            "profile" : [
              🔗 "http://hl7.org/cda/stds/core/StructureDefinition/cs-simple"
            ]
          }
        ],
        "fixedCode" : "COMP",
        "binding" : {
          "strength" : "required",
          "valueSet" : "http://terminology.hl7.org/ValueSet/v3-ActRelationshipHasComponent"
        }
      },
      {
        "id" : "Component.contextConductionInd",
        "path" : "Component.contextConductionInd",
        "representation" : [
          "xmlAttr"
        ],
        "min" : 0,
        "max" : "1",
        "type" : [
          {
            "code" : "boolean",
            "profile" : [
              🔗 "http://hl7.org/cda/stds/core/StructureDefinition/bl-simple"
            ]
          }
        ],
        "fixedBoolean" : true
      },
      {
        "id" : "Component.nonXMLBody",
        "path" : "Component.nonXMLBody",
        "short" : "A body in some format other than XML.",
        "min" : 0,
        "max" : "1",
        "type" : [
          {
            "code" : "http://hl7.org/cda/stds/core/StructureDefinition/NonXMLBody"
          }
        ]
      },
      {
        "id" : "Component.structuredBody",
        "path" : "Component.structuredBody",
        "short" : "A body comprised of one or more document sections.",
        "min" : 0,
        "max" : "1",
        "type" : [
          {
            "code" : "http://hl7.org/cda/stds/core/StructureDefinition/StructuredBody"
          }
        ]
      }
    ]
  }
}