<StructureDefinition xmlns="http://hl7.org/fhir">
  <id value="profile-Bundle-query" />
  <url value="https://bpcs.exchange/fhir/StructureDefinition/profile-Bundle-query" />
  <name value="BundleQuery" />
  <title value="Bundle Query" />
  <status value="active" />
  <experimental value="false" />
  <description value="Bundle used for BPCS request and response" />
  <fhirVersion value="5.0.0" />
  <mapping>
    <identity value="BPCS" />
    <name value="Internal BPCS API" />
  </mapping>
  <kind value="resource" />
  <abstract value="true" />
  <type value="Bundle" />
  <baseDefinition value="http://hl7.org/fhir/StructureDefinition/Bundle" />
  <derivation value="constraint" />
  <differential>
    <element id="Bundle.id">
      <path value="Bundle.id" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Bundle.type">
      <path value="Bundle.type" />
      <patternCode value="searchset" />
      <mustSupport value="true" />
    </element>
    <element id="Bundle.timestamp">
      <path value="Bundle.timestamp" />
      <mustSupport value="true" />
    </element>
    <element id="Bundle.total">
      <path value="Bundle.total" />
      <mustSupport value="true" />
    </element>
    <element id="Bundle.link">
      <path value="Bundle.link" />
      <slicing>
        <discriminator>
          <type value="value" />
          <path value="relation" />
        </discriminator>
        <rules value="open" />
      </slicing>
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Bundle.link:self">
      <path value="Bundle.link" />
      <sliceName value="self" />
      <comment value="Echoes the submitted query, including only those parameters which were processed by the server.  This allows for the possibility that the server might not support all of the parameters submitted by the client." />
      <min value="1" />
      <max value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Bundle.link:self.relation">
      <path value="Bundle.link.relation" />
      <patternCode value="self" />
      <mustSupport value="true" />
    </element>
    <element id="Bundle.link:self.url">
      <path value="Bundle.link.url" />
      <mustSupport value="true" />
    </element>
    <element id="Bundle.entry">
      <path value="Bundle.entry" />
      <mustSupport value="true" />
    </element>
    <element id="Bundle.entry.fullUrl">
      <path value="Bundle.entry.fullUrl" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Bundle.entry.resource">
      <path value="Bundle.entry.resource" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Bundle.entry.search">
      <path value="Bundle.entry.search" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Bundle.entry.search.mode">
      <path value="Bundle.entry.search.mode" />
      <mustSupport value="true" />
    </element>
    <element id="Bundle.entry.request">
      <path value="Bundle.entry.request" />
      <max value="0" />
    </element>
    <element id="Bundle.entry.response">
      <path value="Bundle.entry.response" />
      <max value="0" />
    </element>
  </differential>
</StructureDefinition>