<StructureDefinition xmlns="http://hl7.org/fhir">
  <id value="ext-Document" />
  <url value="https://vitalhub.com/fhir/StructureDefinition/ext-Document" />
  <name value="DocumentExtension" />
  <title value="Document Extension" />
  <status value="active" />
  <publisher value="VitalHub" />
  <description value="Extension to capture uploaded document metadata, contents reference, and GUID for linking documents to other records." />
  <fhirVersion value="4.0.1" />
  <kind value="complex-type" />
  <abstract value="false" />
  <context>
    <type value="element" />
    <expression value="Consent" />
  </context>
  <context>
    <type value="element" />
    <expression value="DocumentReference" />
  </context>
  <type value="Extension" />
  <baseDefinition value="http://hl7.org/fhir/StructureDefinition/Extension" />
  <derivation value="constraint" />
  <differential>
    <element id="Extension">
      <path value="Extension" />
      <short value="Document" />
      <definition value="Complex extension capturing document metadata, contents, and GUID." />
    </element>
    <element id="Extension.url">
      <path value="Extension.url" />
      <min value="1" />
      <max value="1" />
      <fixedUri value="https://vitalhub.com/fhir/StructureDefinition/ext-Document" />
    </element>
    <element id="Extension.extension">
      <path value="Extension.extension" />
      <slicing>
        <discriminator>
          <type value="value" />
          <path value="url" />
        </discriminator>
        <ordered value="false" />
        <rules value="open" />
      </slicing>
      <min value="0" />
      <max value="*" />
    </element>
    <element id="Extension.extension:title">
      <path value="Extension.extension" />
      <sliceName value="title" />
      <short value="Document title" />
      <definition value="The name of the document." />
      <min value="0" />
      <max value="1" />
    </element>
    <element id="Extension.extension:title.url">
      <path value="Extension.extension.url" />
      <fixedUri value="https://vitalhub.com/fhir/StructureDefinition/ext-Document#title" />
    </element>
    <element id="Extension.extension:title.valueString">
      <path value="Extension.extension.valueString" />
      <min value="0" />
      <max value="1" />
      <type>
        <code value="string" />
      </type>
    </element>
    <element id="Extension.extension:creation">
      <path value="Extension.extension" />
      <sliceName value="creation" />
      <short value="Document creation date/time" />
      <definition value="The date and time the document was created." />
      <min value="0" />
      <max value="1" />
    </element>
    <element id="Extension.extension:creation.url">
      <path value="Extension.extension.url" />
      <min value="1" />
      <max value="1" />
      <fixedUri value="https://vitalhub.com/fhir/StructureDefinition/ext-Document#creation" />
    </element>
    <element id="Extension.extension:creation.valueDateTime">
      <path value="Extension.extension.valueDateTime" />
      <min value="0" />
      <max value="1" />
      <type>
        <code value="dateTime" />
      </type>
    </element>
    <element id="Extension.extension:documentContents">
      <path value="Extension.extension" />
      <sliceName value="documentContents" />
      <short value="Document contents" />
      <definition value="Reference to the Binary resource holding the document contents." />
      <min value="0" />
      <max value="1" />
    </element>
    <element id="Extension.extension:documentContents.url">
      <path value="Extension.extension.url" />
      <min value="1" />
      <max value="1" />
      <fixedUri value="https://vitalhub.com/fhir/StructureDefinition/ext-Document#documentContents" />
    </element>
    <element id="Extension.extension:documentContents.valueReference">
      <path value="Extension.extension.valueReference" />
      <min value="1" />
      <max value="1" />
      <type>
        <code value="Reference" />
        <profile value="http://hl7.org/fhir/StructureDefinition/Binary" />
      </type>
    </element>
    <element id="Extension.extension:documentGUID">
      <path value="Extension.extension" />
      <sliceName value="documentGUID" />
      <short value="Document GUID" />
      <definition value="GUID linking the document to other extensions or records." />
      <min value="0" />
      <max value="1" />
    </element>
    <element id="Extension.extension:documentGUID.url">
      <path value="Extension.extension.url" />
      <min value="1" />
      <max value="1" />
      <fixedUri value="https://vitalhub.com/fhir/StructureDefinition/ext-Document#documentGUID" />
    </element>
    <element id="Extension.extension:documentGUID.valueUri">
      <path value="Extension.extension.valueUri" />
      <min value="1" />
      <max value="1" />
      <type>
        <code value="uri" />
      </type>
    </element>
    <element id="Extension.extension:contenttype">
      <path value="Extension.extension" />
      <sliceName value="contenttype" />
      <short value="Document MIME type" />
      <definition value="The MIME type of the document." />
      <min value="0" />
      <max value="1" />
    </element>
    <element id="Extension.extension:contenttype.url">
      <path value="Extension.extension.url" />
      <min value="1" />
      <max value="1" />
      <fixedUri value="https://vitalhub.com/fhir/StructureDefinition/ext-Document#contenttype" />
    </element>
    <element id="Extension.extension:contenttype.valueCode">
      <path value="Extension.extension.valueCode" />
      <min value="0" />
      <max value="1" />
      <type>
        <code value="code" />
      </type>
      <binding>
        <strength value="required" />
        <valueSet value="http://hl7.org/fhir/ValueSet/mimetypes" />
      </binding>
    </element>
    <element id="Extension.extension:description">
      <path value="Extension.extension" />
      <sliceName value="description" />
      <short value="Document description" />
      <definition value="Description of the document." />
      <min value="0" />
      <max value="1" />
    </element>
    <element id="Extension.extension:description.url">
      <path value="Extension.extension.url" />
      <min value="1" />
      <max value="1" />
      <fixedUri value="https://vitalhub.com/fhir/StructureDefinition/ext-Document#description" />
    </element>
    <element id="Extension.extension:description.valueString">
      <path value="Extension.extension.valueString" />
      <min value="0" />
      <max value="1" />
      <type>
        <code value="string" />
      </type>
    </element>
    <element id="Extension.extension:organization">
      <path value="Extension.extension" />
      <sliceName value="organization" />
      <short value="Issuing organization" />
      <definition value="Organization associated with the document, selected from the Organizations ValueSet." />
      <min value="0" />
      <max value="1" />
    </element>
    <element id="Extension.extension:organization.url">
      <path value="Extension.extension.url" />
      <min value="1" />
      <max value="1" />
      <fixedUri value="https://vitalhub.com/fhir/StructureDefinition/ext-organization" />
    </element>
    <element id="Extension.extension:organization.valueCodeableConcept">
      <path value="Extension.extension.valueCodeableConcept" />
      <min value="1" />
      <max value="1" />
      <type>
        <code value="CodeableConcept" />
      </type>
      <binding>
        <strength value="required" />
        <valueSet value="https://vitalhub.com/fhir/ValueSet/vs-Organizations" />
      </binding>
    </element>
  </differential>
</StructureDefinition>