<StructureDefinition xmlns="http://hl7.org/fhir">
  <id value="DataStandardsWales-DocumentReference" />
  <url value="https://fhir.nhs.wales/StructureDefinition/DataStandardsWales-DocumentReference" />
  <version value="1.0.0" />
  <name value="DataStandardsWalesDocumentReference" />
  <title value="Data Standards Wales Document Reference" />
  <status value="active" />
  <experimental value="false" />
  <date value="2026-05-26" />
  <publisher value="NHS Wales" />
  <copyright value="2026 NHS Wales" />
  <fhirVersion value="4.0.1" />
  <kind value="resource" />
  <abstract value="false" />
  <type value="DocumentReference" />
  <baseDefinition value="http://hl7.org/fhir/StructureDefinition/DocumentReference" />
  <derivation value="constraint" />
  <differential>
    <element id="DocumentReference.extension">
      <path value="DocumentReference.extension" />
      <min value="1" />
    </element>
    <element id="DocumentReference.extension:digitalStatus">
      <path value="DocumentReference.extension" />
      <sliceName value="digitalStatus" />
      <short value="born-digital-document | scanned-paper-document | UNK" />
      <type>
        <code value="Extension" />
        <profile value="https://fhir.nhs.wales/StructureDefinition/Extension-DataStandardsWales-DocumentDigitalStatus" />
      </type>
      <isModifier value="false" />
    </element>
    <element id="DocumentReference.extension:digitalStatus.value[x]">
      <path value="DocumentReference.extension.value[x]" />
      <requirements value="Mandatory for use in NHS Wales." />
    </element>
    <element id="DocumentReference.extension:versionR5">
      <path value="DocumentReference.extension" />
      <sliceName value="versionR5" />
      <short value="R5: An explicitly assigned identifer of a variation of the content in the DocumentReference" />
      <definition value="R5: `DocumentReference.version`.  This is a business version identifier, not a resource version id.  It can be used to store the SetSequenceNumber of a document from the Welsh Care Records Service. (Backport from FHIR R5.)" />
      <comment value="While each resource, including the DocumentReference itself, has its own version identifier, this is a formal identifier for the logical version of the DocumentReference as a whole. It would remain constant if the resources were moved to a new server, and all got new individual resource versions, for example." />
      <type>
        <code value="Extension" />
        <profile value="http://hl7.org/fhir/5.0/StructureDefinition/extension-DocumentReference.version" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="DocumentReference.extension:versionR5.extension">
      <path value="DocumentReference.extension.extension" />
      <max value="0" />
    </element>
    <element id="DocumentReference.extension:versionR5.value[x]">
      <path value="DocumentReference.extension.value[x]" />
      <definition value="An explicitly assigned identifer of a variation of the content in the DocumentReference.  This is a business version identifier, not a resource version id.   It can be used to store the SetSequenceNumber of a document from the Welsh Care Records Service." />
    </element>
    <element id="DocumentReference.extension:attesterR5">
      <path value="DocumentReference.extension" />
      <sliceName value="attesterR5" />
      <short value="R5: Attests to accuracy of the document" />
      <definition value="R5: `DocumentReference.attester`.  A participant who has authenticated the accuracy of the document." />
      <comment value="Only list each attester once." />
      <type>
        <code value="Extension" />
        <profile value="http://hl7.org/fhir/5.0/StructureDefinition/extension-DocumentReference.attester" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="DocumentReference.extension:attesterR5.extension:mode">
      <path value="DocumentReference.extension.extension" />
      <sliceName value="mode" />
      <short value="R5: personal | professional | legal | official" />
      <definition value="R5: `DocumentReference.attester.mode`. Indicates the level of authority of the attestation." />
      <comment value="Element `DocumentReference.attester.mode` is part of an existing definition because parent element `DocumentReference.attester` requires a cross-version extension." />
      <requirements value="Indicates the level of authority of the attestation. Element `DocumentReference.attester.mode` is part of an existing definition because parent element `DocumentReference.attester` requires a cross-version extension." />
    </element>
    <element id="DocumentReference.extension:attesterR5.extension:mode.extension">
      <path value="DocumentReference.extension.extension.extension" />
      <max value="0" />
    </element>
    <element id="DocumentReference.extension:attesterR5.extension:time">
      <path value="DocumentReference.extension.extension" />
      <sliceName value="time" />
      <short value="R5: When the document was attested" />
      <definition value="R5: `DocumentReference.attester.time`. Identifies when the information in the document was deemed accurate.  (Things may have changed since then.)" />
      <comment value="Element `DocumentReference.attester.time` is part of an existing definition because parent element `DocumentReference.attester` requires a cross-version extension." />
      <requirements value="Element `DocumentReference.attester.time` is part of an existing definition because parent element `DocumentReference.attester` requires a cross-version extension." />
    </element>
    <element id="DocumentReference.extension:attesterR5.extension:time.extension">
      <path value="DocumentReference.extension.extension.extension" />
      <max value="0" />
    </element>
    <element id="DocumentReference.extension:attesterR5.extension:party">
      <path value="DocumentReference.extension.extension" />
      <sliceName value="party" />
      <definition value="R5: `DocumentReference.attester.party`. Identifies who has taken on the responsibility for accuracy of the document content." />
      <comment value="Element `DocumentReference.attester.party` is part of an existing definition because parent element `DocumentReference.attester` requires a cross-version extension." />
      <requirements value="Element `DocumentReference.attester.party` is part of an existing definition because parent element `DocumentReference.attester` requires a cross-version extension." />
    </element>
    <element id="DocumentReference.extension:attesterR5.extension:party.extension">
      <path value="DocumentReference.extension.extension.extension" />
      <max value="0" />
    </element>
    <element id="DocumentReference.extension:attesterR5.extension:party.value[x]">
      <path value="DocumentReference.extension.extension.value[x]" />
      <type>
        <code value="Reference" />
        <targetProfile value="https://fhir.nhs.wales/StructureDefinition/DataStandardsWales-Patient" />
        <targetProfile value="https://fhir.nhs.wales/StructureDefinition/DataStandardsWales-Practitioner" />
        <targetProfile value="https://fhir.nhs.wales/StructureDefinition/DataStandardsWales-PractitionerRole" />
        <targetProfile value="https://fhir.nhs.wales/StructureDefinition/DataStandardsWales-Organization" />
      </type>
    </element>
    <element id="DocumentReference.masterIdentifier">
      <path value="DocumentReference.masterIdentifier" />
      <max value="0" />
    </element>
    <element id="DocumentReference.identifier">
      <path value="DocumentReference.identifier" />
      <slicing>
        <description value="Slices provided for the different types of national identifiers issued by the Welsh Care Records Service." />
        <rules value="open" />
      </slicing>
      <mustSupport value="true" />
    </element>
    <element id="DocumentReference.identifier:wcrsDocumentId">
      <path value="DocumentReference.identifier" />
      <sliceName value="wcrsDocumentId" />
      <short value="The WCRS DocumentId." />
      <definition value="The version-specific DocumentId issued by the Welsh Care Records Service." />
      <max value="1" />
    </element>
    <element id="DocumentReference.identifier:wcrsDocumentId.system">
      <path value="DocumentReference.identifier.system" />
      <fixedUri value="https://fhir.nhs.wales/Id/wcrs-document-identifier" />
    </element>
    <element id="DocumentReference.identifier:wcrsSupersessionSetId">
      <path value="DocumentReference.identifier" />
      <sliceName value="wcrsSupersessionSetId" />
      <short value="The WCRS DocumentSupersessionSetId." />
      <definition value="The version-independent DocumentSupersessionSetId issued by the Welsh Care Records Service." />
      <max value="1" />
    </element>
    <element id="DocumentReference.identifier:wcrsSupersessionSetId.system">
      <path value="DocumentReference.identifier.system" />
      <fixedUri value="https://fhir.nhs.wales/Id/wcrs-supersession-set-identifier" />
    </element>
    <element id="DocumentReference.docStatus">
      <path value="DocumentReference.docStatus" />
      <mustSupport value="true" />
    </element>
    <element id="DocumentReference.type">
      <path value="DocumentReference.type" />
      <short value="Kind of document" />
      <min value="1" />
      <mustSupport value="true" />
      <binding>
        <strength value="extensible" />
        <valueSet value="https://fhir.nhs.wales/ValueSet/DataStandardsWales-DocumentType" />
      </binding>
    </element>
    <element id="DocumentReference.category">
      <path value="DocumentReference.category" />
      <min value="1" />
      <mustSupport value="true" />
      <binding>
        <strength value="extensible" />
        <valueSet value="https://fhir.nhs.wales/ValueSet/DataStandardsWales-DocumentCategory" />
      </binding>
    </element>
    <element id="DocumentReference.subject">
      <path value="DocumentReference.subject" />
      <type>
        <code value="Reference" />
        <targetProfile value="https://fhir.nhs.wales/StructureDefinition/DataStandardsWales-Patient" />
        <targetProfile value="https://fhir.nhs.wales/StructureDefinition/DataStandardsWales-Practitioner" />
        <targetProfile value="http://hl7.org/fhir/StructureDefinition/Group" />
        <targetProfile value="https://fhir.nhs.wales/StructureDefinition/DataStandardsWales-Device" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="DocumentReference.date">
      <path value="DocumentReference.date" />
      <mustSupport value="true" />
    </element>
    <element id="DocumentReference.author">
      <path value="DocumentReference.author" />
      <type>
        <code value="Reference" />
        <targetProfile value="https://fhir.nhs.wales/StructureDefinition/DataStandardsWales-Practitioner" />
        <targetProfile value="https://fhir.nhs.wales/StructureDefinition/DataStandardsWales-PractitionerRole" />
        <targetProfile value="https://fhir.nhs.wales/StructureDefinition/DataStandardsWales-Organization" />
        <targetProfile value="https://fhir.nhs.wales/StructureDefinition/DataStandardsWales-Device" />
        <targetProfile value="https://fhir.nhs.wales/StructureDefinition/DataStandardsWales-Patient" />
        <targetProfile value="https://fhir.nhs.wales/StructureDefinition/DataStandardsWales-RelatedPerson" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="DocumentReference.authenticator">
      <path value="DocumentReference.authenticator" />
      <max value="0" />
      <type>
        <code value="Reference" />
        <targetProfile value="https://fhir.nhs.wales/StructureDefinition/DataStandardsWales-Practitioner" />
        <targetProfile value="https://fhir.nhs.wales/StructureDefinition/DataStandardsWales-PractitionerRole" />
        <targetProfile value="https://fhir.nhs.wales/StructureDefinition/DataStandardsWales-Organization" />
      </type>
      <mustSupport value="false" />
    </element>
    <element id="DocumentReference.custodian">
      <path value="DocumentReference.custodian" />
      <type>
        <code value="Reference" />
        <targetProfile value="https://fhir.nhs.wales/StructureDefinition/DataStandardsWales-Organization" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="DocumentReference.relatesTo.target">
      <path value="DocumentReference.relatesTo.target" />
      <type>
        <code value="Reference" />
        <targetProfile value="https://fhir.nhs.wales/StructureDefinition/DataStandardsWales-DocumentReference" />
      </type>
    </element>
    <element id="DocumentReference.securityLabel">
      <path value="DocumentReference.securityLabel" />
      <mustSupport value="true" />
    </element>
    <element id="DocumentReference.content.attachment.language">
      <path value="DocumentReference.content.attachment.language" />
      <short value="Human language of the content" />
      <definition value="The human language of the content. Within NHS Wales, the three character ISO 639-3 code should be used where possible e.g. &quot;eng&quot; for English, &quot;cym&quot; for Welsh." />
      <requirements value="Users need to be able to choose between the languages in a set of attachments. ISO 639-3 is a subset of the BCP 47 standard." />
    </element>
    <element id="DocumentReference.content.format">
      <path value="DocumentReference.content.format" />
      <definition value="An identifier of the document encoding, structure, and template that the document conforms to beyond the base format indicated in the mimeType. This optional field is not part of the formal metadata standard for document submission in Wales.  It should not be confused with mime type which is stored as content.attachment.contentType." />
    </element>
    <element id="DocumentReference.context.encounter">
      <path value="DocumentReference.context.encounter" />
      <type>
        <code value="Reference" />
        <targetProfile value="https://fhir.nhs.wales/StructureDefinition/DataStandardsWales-Encounter" />
        <targetProfile value="http://hl7.org/fhir/StructureDefinition/EpisodeOfCare" />
      </type>
    </element>
    <element id="DocumentReference.context.practiceSetting">
      <path value="DocumentReference.context.practiceSetting" />
      <mustSupport value="true" />
      <binding>
        <strength value="required" />
        <valueSet value="https://fhir.hl7.org.uk/ValueSet/UKCore-PracticeSettingCode" />
      </binding>
    </element>
    <element id="DocumentReference.context.sourcePatientInfo">
      <path value="DocumentReference.context.sourcePatientInfo" />
      <max value="0" />
      <type>
        <code value="Reference" />
        <targetProfile value="https://fhir.nhs.wales/StructureDefinition/DataStandardsWales-Patient" />
      </type>
    </element>
    <element id="DocumentReference.context.related">
      <path value="DocumentReference.context.related" />
      <type>
        <code value="Reference" />
        <targetProfile value="http://hl7.org/fhir/StructureDefinition/Resource" />
        <targetProfile value="https://fhir.nhs.wales/StructureDefinition/DataStandardsWales-Practitioner" />
        <targetProfile value="https://fhir.nhs.wales/StructureDefinition/DataStandardsWales-PractitionerRole" />
        <targetProfile value="https://fhir.nhs.wales/StructureDefinition/DataStandardsWales-Organization" />
        <targetProfile value="https://fhir.nhs.wales/StructureDefinition/DataStandardsWales-Location" />
      </type>
    </element>
  </differential>
</StructureDefinition>