Clinical Document Architecture
2.0.0-sd-ballot - ballot

Clinical Document Architecture, published by Health Level 7. This guide is not an authorized publication; it is the continuous build for version 2.0.0-sd-ballot built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/ahdis/cda-core-2.0/ and changes regularly. See the Directory of published versions

Logical Model: Reference - JSON Profile

Active as of 2024-03-04

JSON representation of the Reference logical model.

Raw json | Download


{
  "resourceType" : "StructureDefinition",
  "id" : "Reference",
  "text" : {
    "status" : "generated",
    "div" : "<div xmlns=\"http://www.w3.org/1999/xhtml\">\n      <p>CDA entries can reference external objects such as external images and prior reports. These external objects are not part of the authenticated document content. They contain sufficient attributes to enable an explicit reference rather than duplicating the entire referenced object. The CDA entry that wraps the external reference can be used to encode the specific portions of the external reference that are addressed in the narrative block.</p>\n      <p>Each object allows for an identifier and a code, and contains the RIM Act.text attribute, which can be used to store the URL and MIME type of the object. External objects always have a fixed moodCode of &quot;EVN&quot;.</p>\n      <p>The reference class contains the attribute reference.seperatableInd, which indicates whether or not the source is intended to be interpreted independently of the target. The indicator cannot prevent an individual or application from separating the source and target, but indicates the author's desire and willingness to attest to the content of the source if separated from the target. Typically, where seperatableInd is &quot;false&quot;, the exchanged package should include the target of the reference so that the recipient can render it.</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" : "reference"
    },
    {
      "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",
      "valueUri" : "cda"
    }
  ],
  "url" : "http://hl7.org/cda/stds/core/StructureDefinition/Reference",
  "version" : "2.0.0-sd-ballot",
  "name" : "Reference",
  "title" : "Reference (CDA Class)",
  "status" : "active",
  "experimental" : false,
  "date" : "2024-03-04T16:15:02+00: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" : "CDA entries can reference external objects such as external images and prior reports. These external objects are not part of the authenticated document content. They contain sufficient attributes to enable an explicit reference rather than duplicating the entire referenced object. The CDA entry that wraps the external reference can be used to encode the specific portions of the external reference that are addressed in the narrative block.\n\nEach object allows for an identifier and a code, and contains the RIM Act.text attribute, which can be used to store the URL and MIME type of the object. External objects always have a fixed moodCode of \"EVN\".\n\nThe reference class contains the attribute reference.seperatableInd, which indicates whether or not the source is intended to be interpreted independently of the target. The indicator cannot prevent an individual or application from separating the source and target, but indicates the author's desire and willingness to attest to the content of the source if separated from the target. Typically, where seperatableInd is \"false\", the exchanged package should include the target of the reference so that the recipient can render it.",
  "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/Reference",
  "baseDefinition" : "http://hl7.org/cda/stds/core/StructureDefinition/InfrastructureRoot",
  "derivation" : "specialization",
  "snapshot" : {
    "element" : [
      {
        "id" : "Reference",
        "path" : "Reference",
        "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" : "*",
        "base" : {
          "path" : "Base",
          "min" : 0,
          "max" : "*"
        },
        "constraint" : [
          {
            "key" : "reference-external",
            "severity" : "error",
            "human" : "Must contain one (and only one) external reference",
            "expression" : "(externalAct | externalObservation | externalProcedure | externalDocument).count() = 1"
          }
        ],
        "isModifier" : false,
        "mapping" : [
          {
            "identity" : "rim",
            "map" : "n/a"
          }
        ]
      },
      {
        "id" : "Reference.nullFlavor",
        "path" : "Reference.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" : "Reference.realmCode",
        "path" : "Reference.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" : "Reference.typeId",
        "path" : "Reference.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"
          }
        ]
      },
      {
        "id" : "Reference.typeId.nullFlavor",
        "path" : "Reference.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" : "Reference.typeId.assigningAuthorityName",
        "path" : "Reference.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" : "Reference.typeId.displayable",
        "path" : "Reference.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" : "Reference.typeId.root",
        "path" : "Reference.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" : "Reference.typeId.extension",
        "path" : "Reference.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" : "Reference.templateId",
        "path" : "Reference.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" : "Reference.typeCode",
        "path" : "Reference.typeCode",
        "representation" : [
          "xmlAttr"
        ],
        "min" : 1,
        "max" : "1",
        "base" : {
          "path" : "Reference.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-xActRelationshipExternalReference"
        }
      },
      {
        "id" : "Reference.seperatableInd",
        "path" : "Reference.seperatableInd",
        "min" : 0,
        "max" : "1",
        "base" : {
          "path" : "Reference.seperatableInd",
          "min" : 0,
          "max" : "1"
        },
        "type" : [
          {
            "code" : "http://hl7.org/cda/stds/core/StructureDefinition/BL"
          }
        ]
      },
      {
        "id" : "Reference.externalAct",
        "path" : "Reference.externalAct",
        "min" : 0,
        "max" : "1",
        "base" : {
          "path" : "Reference.externalAct",
          "min" : 0,
          "max" : "1"
        },
        "type" : [
          {
            "code" : "http://hl7.org/cda/stds/core/StructureDefinition/ExternalAct"
          }
        ]
      },
      {
        "id" : "Reference.externalObservation",
        "path" : "Reference.externalObservation",
        "min" : 0,
        "max" : "1",
        "base" : {
          "path" : "Reference.externalObservation",
          "min" : 0,
          "max" : "1"
        },
        "type" : [
          {
            "code" : "http://hl7.org/cda/stds/core/StructureDefinition/ExternalObservation"
          }
        ]
      },
      {
        "id" : "Reference.externalProcedure",
        "path" : "Reference.externalProcedure",
        "min" : 0,
        "max" : "1",
        "base" : {
          "path" : "Reference.externalProcedure",
          "min" : 0,
          "max" : "1"
        },
        "type" : [
          {
            "code" : "http://hl7.org/cda/stds/core/StructureDefinition/ExternalProcedure"
          }
        ]
      },
      {
        "id" : "Reference.externalDocument",
        "path" : "Reference.externalDocument",
        "min" : 0,
        "max" : "1",
        "base" : {
          "path" : "Reference.externalDocument",
          "min" : 0,
          "max" : "1"
        },
        "type" : [
          {
            "code" : "http://hl7.org/cda/stds/core/StructureDefinition/ExternalDocument"
          }
        ]
      }
    ]
  },
  "differential" : {
    "element" : [
      {
        "id" : "Reference",
        "path" : "Reference",
        "min" : 1,
        "max" : "*",
        "constraint" : [
          {
            "key" : "reference-external",
            "severity" : "error",
            "human" : "Must contain one (and only one) external reference",
            "expression" : "(externalAct | externalObservation | externalProcedure | externalDocument).count() = 1"
          }
        ]
      },
      {
        "id" : "Reference.typeCode",
        "path" : "Reference.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-xActRelationshipExternalReference"
        }
      },
      {
        "id" : "Reference.seperatableInd",
        "path" : "Reference.seperatableInd",
        "min" : 0,
        "max" : "1",
        "type" : [
          {
            "code" : "http://hl7.org/cda/stds/core/StructureDefinition/BL"
          }
        ]
      },
      {
        "id" : "Reference.externalAct",
        "path" : "Reference.externalAct",
        "min" : 0,
        "max" : "1",
        "type" : [
          {
            "code" : "http://hl7.org/cda/stds/core/StructureDefinition/ExternalAct"
          }
        ]
      },
      {
        "id" : "Reference.externalObservation",
        "path" : "Reference.externalObservation",
        "min" : 0,
        "max" : "1",
        "type" : [
          {
            "code" : "http://hl7.org/cda/stds/core/StructureDefinition/ExternalObservation"
          }
        ]
      },
      {
        "id" : "Reference.externalProcedure",
        "path" : "Reference.externalProcedure",
        "min" : 0,
        "max" : "1",
        "type" : [
          {
            "code" : "http://hl7.org/cda/stds/core/StructureDefinition/ExternalProcedure"
          }
        ]
      },
      {
        "id" : "Reference.externalDocument",
        "path" : "Reference.externalDocument",
        "min" : 0,
        "max" : "1",
        "type" : [
          {
            "code" : "http://hl7.org/cda/stds/core/StructureDefinition/ExternalDocument"
          }
        ]
      }
    ]
  }
}