<StructureDefinition xmlns="http://hl7.org/fhir">
  <url value="http://apiframework.dedalus.eu/fhir/StructureDefinition/DocumentReference" />
  <name value="DocumentReference" />
  <status value="active" />
  <description value="Core API Framework FHIR Profile for DocumentReference Resource" />
  <fhirVersion value="3.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.id">
      <path value="DocumentReference.id" />
      <mustSupport value="true" />
    </element>
    <element id="DocumentReference.meta">
      <path value="DocumentReference.meta" />
      <type>
        <code value="Meta" />
        <profile value="http://apiframework.dedalus.eu/fhir/StructureDefinition/Meta-ForCommonConformance" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="DocumentReference.meta.tag">
      <path value="DocumentReference.meta.tag" />
      <slicing>
        <discriminator>
          <type value="value" />
          <path value="system" />
        </discriminator>
        <rules value="open" />
      </slicing>
    </element>
    <element id="DocumentReference.text">
      <path value="DocumentReference.text" />
      <mustSupport value="true" />
    </element>
    <element id="DocumentReference.masterIdentifier">
      <path value="DocumentReference.masterIdentifier" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="DocumentReference.identifier">
      <path value="DocumentReference.identifier" />
      <mustSupport value="true" />
    </element>
    <element id="DocumentReference.status">
      <path value="DocumentReference.status" />
      <mustSupport value="true" />
    </element>
    <element id="DocumentReference.type">
      <path value="DocumentReference.type" />
      <short value="Kind of document" />
      <mustSupport value="true" />
      <binding>
        <strength value="required" />
        <description value="D4 Affinity Domain Type Codes" />
        <valueSetReference>
          <reference value="http://apiframework.dedalus.eu/fhir/ValueSet/AffinityDomainTypeCodes" />
        </valueSetReference>
      </binding>
    </element>
    <element id="DocumentReference.class">
      <path value="DocumentReference.class" />
      <min value="1" />
      <mustSupport value="true" />
      <binding>
        <strength value="required" />
        <description value="D4 Affinity Domain Class Codes" />
        <valueSetReference>
          <reference value="http://apiframework.dedalus.eu/fhir/ValueSet/AffinityDomainClassCodes" />
        </valueSetReference>
      </binding>
    </element>
    <element id="DocumentReference.subject">
      <path value="DocumentReference.subject" />
      <min value="1" />
      <type>
        <code value="Reference" />
        <targetProfile value="http://hl7.org/fhir/StructureDefinition/Patient" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="DocumentReference.indexed">
      <path value="DocumentReference.indexed" />
      <mustSupport value="true" />
    </element>
    <element id="DocumentReference.author">
      <path value="DocumentReference.author" />
      <type>
        <code value="Reference" />
        <targetProfile value="http://hl7.org/fhir/StructureDefinition/Practitioner" />
      </type>
      <type>
        <code value="Reference" />
        <targetProfile value="http://hl7.org/fhir/StructureDefinition/Organization" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="DocumentReference.relatesTo">
      <path value="DocumentReference.relatesTo" />
      <slicing>
        <discriminator>
          <type value="value" />
          <path value="code" />
        </discriminator>
        <rules value="open" />
      </slicing>
      <mustSupport value="true" />
    </element>
    <element id="DocumentReference.relatesTo:replacesDocument">
      <path value="DocumentReference.relatesTo" />
      <sliceName value="replacesDocument" />
      <requirements value="To be used in case the current document reference replaces a previous one" />
      <mustSupport value="true" />
    </element>
    <element id="DocumentReference.relatesTo:replacesDocument.code">
      <path value="DocumentReference.relatesTo.code" />
      <fixedCode value="replaces" />
    </element>
    <element id="DocumentReference.relatesTo:replacesDocument.target.reference">
      <path value="DocumentReference.relatesTo.target.reference" />
      <min value="1" />
    </element>
    <element id="DocumentReference.relatesTo:appendsToDocument">
      <path value="DocumentReference.relatesTo" />
      <sliceName value="appendsToDocument" />
      <requirements value="To be used in case the current document appends new content to an existing (and still valid) document" />
    </element>
    <element id="DocumentReference.relatesTo:appendsToDocument.code">
      <path value="DocumentReference.relatesTo.code" />
      <fixedCode value="appends" />
    </element>
    <element id="DocumentReference.relatesTo:appendsToDocument.target.reference">
      <path value="DocumentReference.relatesTo.target.reference" />
      <min value="1" />
    </element>
    <element id="DocumentReference.securityLabel">
      <path value="DocumentReference.securityLabel" />
      <min value="1" />
      <mustSupport value="true" />
      <binding>
        <strength value="required" />
        <description value="D4 Affinity Domain Confidentiality Codes" />
        <valueSetReference>
          <reference value="http://apiframework.dedalus.eu/fhir/ValueSet/AffinityDomainConfidentialityCodes" />
        </valueSetReference>
      </binding>
    </element>
    <element id="DocumentReference.content">
      <path value="DocumentReference.content" />
      <max value="1" />
      <mustSupport value="true" />
    </element>
    <element id="DocumentReference.content.attachment">
      <path value="DocumentReference.content.attachment" />
      <mustSupport value="true" />
    </element>
    <element id="DocumentReference.content.attachment.contentType">
      <path value="DocumentReference.content.attachment.contentType" />
      <mustSupport value="true" />
      <binding>
        <strength value="required" />
        <description value="D4 Affinity Domain MIME Types" />
        <valueSetUri value="http://apiframework.dedalus.eu/fhir/ValueSet/AffinityDomainMimeTypes" />
      </binding>
    </element>
    <element id="DocumentReference.content.attachment.url">
      <path value="DocumentReference.content.attachment.url" />
      <mustSupport value="true" />
    </element>
    <element id="DocumentReference.content.attachment.size">
      <path value="DocumentReference.content.attachment.size" />
      <mustSupport value="true" />
    </element>
    <element id="DocumentReference.content.attachment.hash">
      <path value="DocumentReference.content.attachment.hash" />
      <mustSupport value="true" />
    </element>
    <element id="DocumentReference.content.format">
      <path value="DocumentReference.content.format" />
      <min value="1" />
      <mustSupport value="true" />
      <binding>
        <strength value="required" />
        <description value="D4 Affinity Domain Format Codes" />
        <valueSetReference>
          <reference value="http://apiframework.dedalus.eu/fhir/ValueSet/AffinityDomainFormatCodes" />
        </valueSetReference>
      </binding>
    </element>
    <element id="DocumentReference.context">
      <path value="DocumentReference.context" />
      <mustSupport value="true" />
    </element>
    <element id="DocumentReference.context.event">
      <path value="DocumentReference.context.event" />
      <binding>
        <strength value="required" />
        <description value="D4 Affinity Domain Event Code List" />
        <valueSetReference>
          <reference value="http://apiframework.dedalus.eu/fhir/ValueSet/AffinityDomainEventCodeList" />
        </valueSetReference>
      </binding>
    </element>
    <element id="DocumentReference.context.period">
      <path value="DocumentReference.context.period" />
      <mustSupport value="false" />
    </element>
    <element id="DocumentReference.context.facilityType">
      <path value="DocumentReference.context.facilityType" />
      <min value="1" />
      <mustSupport value="true" />
      <binding>
        <strength value="required" />
        <description value="D4 Affinity Domain Healthcare Facility Type Codes" />
        <valueSetReference>
          <reference value="http://apiframework.dedalus.eu/fhir/ValueSet/AffinityDomainHealthcareFacilityTypeCodes" />
        </valueSetReference>
      </binding>
    </element>
    <element id="DocumentReference.context.practiceSetting">
      <path value="DocumentReference.context.practiceSetting" />
      <min value="1" />
      <mustSupport value="true" />
      <binding>
        <strength value="required" />
        <description value="D4 Affinity Domain Practice Setting Codes" />
        <valueSetReference>
          <reference value="http://apiframework.dedalus.eu/fhir/ValueSet/AffinityDomainPracticeSettingCodes" />
        </valueSetReference>
      </binding>
    </element>
    <element id="DocumentReference.context.sourcePatientInfo">
      <path value="DocumentReference.context.sourcePatientInfo" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="DocumentReference.context.related">
      <path value="DocumentReference.context.related" />
      <requirements value="Use to reference other resources such as the Specimen this document is about" />
      <mustSupport value="true" />
    </element>
    <element id="DocumentReference.context.related.identifier">
      <path value="DocumentReference.context.related.identifier" />
      <comment value="See ITI TF-2x: Appendix E.3.1 on CXi mapping to FHIR Identifier" />
    </element>
    <element id="DocumentReference.context.related.ref">
      <path value="DocumentReference.context.related.ref" />
      <comment value="May be filled with URL pointers to Resources found in referenceIdList" />
      <mustSupport value="true" />
    </element>
  </differential>
</StructureDefinition>