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: RelatedDocument - JSON Profile

Active as of 2025-12-12

JSON representation of the RelatedDocument logical model.

Raw json | Download

{
  "resourceType" : "StructureDefinition",
  "id" : "RelatedDocument",
  "text" : {
    "status" : "generated",
    "div" : "<div xmlns=\"http://www.w3.org/1999/xhtml\">\n      <p><b>Document Identification, Revisions, and Addenda</b></p>\n      <p>A clinical document can be replaced by a new document and/or appended with an addendum.</p>\n      <p>A replacement document is a new version of the parent document. The parent document is considered superseded, but a system may retain it for historical or auditing purposes. The parent document being replaced is referenced via act relationship relatedDocument, where relatedDocument.typeCode is set to equal &quot;RPLC&quot; (for &quot;replaces&quot;). An example is a report found to contain an error that is subsequently replaced by the corrected report.</p>\n      <p>An addendum is a separate document that references the parent document, and may extend or alter the observations in the prior document. The parent document remains a current component of the patient record, and the addendum and its parent are both read by report recipients. The parent report (represented by the ParentDocument class) being appended is referenced via act relationship relatedDocument, where relatedDocument.typeCode is set to equal &quot;APND&quot; (for &quot;appends&quot;).</p>\n      <p>Every CDA document must have a unique ClinicalDocument.id, and thus the replacement or addendum documents each have ClinicalDocument.id that is different from that of the parent document.</p>\n      <p>CDA documents may also contain a ClinicalDocument.setId and a ClinicalDocument.versionNumber, which together support a document identification and versioning scheme used in some document management systems. In this scheme, all documents in a chain of replacements have the same ClinicalDocument.setId and are distinguished by an incrementing ClinicalDocument.versionNumber. The initial version of a document gets, in addition to a new unique value for ClinicalDocument.id, a new value for ClinicalDocument.setId, and has the value of ClinicalDocument.versionNumber set to equal &quot;1&quot;. A replacement document gets a new globally unique ClinicalDocument.id value, and uses the same value for ClinicalDocument.setId as the parent report being replaced, and increments the value of ClinicalDocument.versionNumber by 1. (Note that version number must be incremented by one when a report is replaced, but can also be incremented more often to meet local requirements.)</p>\n      <p><b>Document transformations</b></p>\n      <p>A CDA document can be a transformation from some other format, meaning that it has undergone a machine translation from some other format (such as DICOM SR). In this case, relatedDocument.typeCode should be set to &quot;XFRM&quot;.</p>\n      <p>A proper transformation must ensure that the human readable clinical content of the report is not impacted. Local business rules determine whether or not a transformed report replaces the source, but typically this would not be the case. If it is, an additional relationship of type &quot;RPLC&quot; is to be used. The &quot;XFRM&quot; relationship can also be used when translating a document in a local format into CDA for the purpose of exchange. In this case, the target of the &quot;XFRM&quot; relationship is the local document identifier.</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" : "relatedDocument"
    },
    {
      "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/RelatedDocument",
  "version" : "2.0.2-sd",
  "name" : "RelatedDocument",
  "title" : "RelatedDocument (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" : "**Document Identification, Revisions, and Addenda**\n\nA clinical document can be replaced by a new document and/or appended with an addendum.\n\nA replacement document is a new version of the parent document. The parent document is considered superseded, but a system may retain it for historical or auditing purposes. The parent document being replaced is referenced via act relationship relatedDocument, where relatedDocument.typeCode is set to equal \"RPLC\" (for \"replaces\"). An example is a report found to contain an error that is subsequently replaced by the corrected report.\n\nAn addendum is a separate document that references the parent document, and may extend or alter the observations in the prior document. The parent document remains a current component of the patient record, and the addendum and its parent are both read by report recipients. The parent report (represented by the ParentDocument class) being appended is referenced via act relationship relatedDocument, where relatedDocument.typeCode is set to equal \"APND\" (for \"appends\").\n\nEvery CDA document must have a unique ClinicalDocument.id, and thus the replacement or addendum documents each have ClinicalDocument.id that is different from that of the parent document.\n\nCDA documents may also contain a ClinicalDocument.setId and a ClinicalDocument.versionNumber, which together support a document identification and versioning scheme used in some document management systems. In this scheme, all documents in a chain of replacements have the same ClinicalDocument.setId and are distinguished by an incrementing ClinicalDocument.versionNumber. The initial version of a document gets, in addition to a new unique value for ClinicalDocument.id, a new value for ClinicalDocument.setId, and has the value of ClinicalDocument.versionNumber set to equal \"1\". A replacement document gets a new globally unique ClinicalDocument.id value, and uses the same value for ClinicalDocument.setId as the parent report being replaced, and increments the value of ClinicalDocument.versionNumber by 1. (Note that version number must be incremented by one when a report is replaced, but can also be incremented more often to meet local requirements.)\n\n**Document transformations**\n\nA CDA document can be a transformation from some other format, meaning that it has undergone a machine translation from some other format (such as DICOM SR). In this case, relatedDocument.typeCode should be set to \"XFRM\".\n\nA proper transformation must ensure that the human readable clinical content of the report is not impacted. Local business rules determine whether or not a transformed report replaces the source, but typically this would not be the case. If it is, an additional relationship of type \"RPLC\" is to be used. The \"XFRM\" relationship can also be used when translating a document in a local format into CDA for the purpose of exchange. In this case, the target of the \"XFRM\" relationship is the local document identifier.\n\n",
  "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/RelatedDocument",
  "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" : "RelatedDocument",
        "path" : "RelatedDocument",
        "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" : "*"
        },
        "isModifier" : false,
        "mapping" : [
          {
            "identity" : "rim",
            "map" : "n/a"
          }
        ]
      },
      {
        "id" : "RelatedDocument.nullFlavor",
        "path" : "RelatedDocument.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" : "RelatedDocument.realmCode",
        "path" : "RelatedDocument.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" : "RelatedDocument.typeId",
        "path" : "RelatedDocument.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" : "RelatedDocument.typeId.nullFlavor",
        "path" : "RelatedDocument.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" : "RelatedDocument.typeId.assigningAuthorityName",
        "path" : "RelatedDocument.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" : "RelatedDocument.typeId.displayable",
        "path" : "RelatedDocument.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" : "RelatedDocument.typeId.root",
        "path" : "RelatedDocument.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" : "RelatedDocument.typeId.extension",
        "path" : "RelatedDocument.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" : "RelatedDocument.templateId",
        "path" : "RelatedDocument.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" : "RelatedDocument.typeCode",
        "path" : "RelatedDocument.typeCode",
        "representation" : [
          "xmlAttr"
        ],
        "min" : 1,
        "max" : "1",
        "base" : {
          "path" : "RelatedDocument.typeCode",
          "min" : 1,
          "max" : "1"
        },
        "type" : [
          {
            "code" : "code",
            "profile" : [
              🔗 "http://hl7.org/cda/stds/core/StructureDefinition/cs-simple"
            ]
          }
        ],
        "binding" : {
          "strength" : "required",
          "valueSet" : "http://terminology.hl7.org/ValueSet/v3-xActRelationshipDocument"
        }
      },
      {
        "id" : "RelatedDocument.parentDocument",
        "path" : "RelatedDocument.parentDocument",
        "min" : 1,
        "max" : "1",
        "base" : {
          "path" : "RelatedDocument.parentDocument",
          "min" : 1,
          "max" : "1"
        },
        "type" : [
          {
            "code" : "http://hl7.org/cda/stds/core/StructureDefinition/ParentDocument"
          }
        ]
      }
    ]
  },
  "differential" : {
    "element" : [
      {
        "id" : "RelatedDocument",
        "path" : "RelatedDocument",
        "min" : 1,
        "max" : "1"
      },
      {
        "id" : "RelatedDocument.typeCode",
        "path" : "RelatedDocument.typeCode",
        "representation" : [
          "xmlAttr"
        ],
        "min" : 1,
        "max" : "1",
        "type" : [
          {
            "code" : "code",
            "profile" : [
              🔗 "http://hl7.org/cda/stds/core/StructureDefinition/cs-simple"
            ]
          }
        ],
        "binding" : {
          "strength" : "required",
          "valueSet" : "http://terminology.hl7.org/ValueSet/v3-xActRelationshipDocument"
        }
      },
      {
        "id" : "RelatedDocument.parentDocument",
        "path" : "RelatedDocument.parentDocument",
        "min" : 1,
        "max" : "1",
        "type" : [
          {
            "code" : "http://hl7.org/cda/stds/core/StructureDefinition/ParentDocument"
          }
        ]
      }
    ]
  }
}