<StructureDefinition xmlns="http://hl7.org/fhir">
  <id value="profile-Bundle-coverage-family" />
  <url value="https://bpcs.exchange/fhir/StructureDefinition/profile-Bundle-coverage-family" />
  <name value="BundleCoverageFamily" />
  <title value="Coverage Family Search Result Bundle Profile" />
  <status value="active" />
  <experimental value="false" />
  <description value="A profile on Bundle for a search result of coverage records for a family" />
  <fhirVersion value="5.0.0" />
  <mapping>
    <identity value="BPCS" />
    <name value="Internal BPCS API" />
  </mapping>
  <kind value="resource" />
  <abstract value="false" />
  <type value="Bundle" />
  <baseDefinition value="https://bpcs.exchange/fhir/StructureDefinition/profile-Bundle-query" />
  <derivation value="constraint" />
  <differential>
    <element id="Bundle.entry">
      <path value="Bundle.entry" />
      <slicing>
        <discriminator>
          <type value="profile" />
          <path value="resource" />
        </discriminator>
        <rules value="open" />
      </slicing>
      <min value="12" />
    </element>
    <element id="Bundle.entry:coverage">
      <path value="Bundle.entry" />
      <sliceName value="coverage" />
      <min value="1" />
      <max value="1" />
    </element>
    <element id="Bundle.entry:coverage.resource">
      <path value="Bundle.entry.resource" />
      <type>
        <code value="Coverage" />
        <profile value="https://bpcs.exchange/fhir/StructureDefinition/profile-Coverage-family" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="Bundle.entry:coverage.search.mode">
      <path value="Bundle.entry.search.mode" />
      <patternCode value="match" />
    </element>
    <element id="Bundle.entry:family">
      <path value="Bundle.entry" />
      <sliceName value="family" />
      <min value="1" />
      <max value="1" />
    </element>
    <element id="Bundle.entry:family.resource">
      <path value="Bundle.entry.resource" />
      <type>
        <code value="Group" />
        <profile value="https://bpcs.exchange/fhir/StructureDefinition/profile-Group-search" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="Bundle.entry:family.search.mode">
      <path value="Bundle.entry.search.mode" />
      <patternCode value="include" />
    </element>
    <element id="Bundle.entry:request">
      <path value="Bundle.entry" />
      <sliceName value="request" />
      <min value="1" />
      <max value="1" />
    </element>
    <element id="Bundle.entry:request.resource">
      <path value="Bundle.entry.resource" />
      <type>
        <code value="EnrollmentRequest" />
        <profile value="https://bpcs.exchange/fhir/StructureDefinition/profile-EnrollmentRequest-search" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="Bundle.entry:request.search.mode">
      <path value="Bundle.entry.search.mode" />
      <patternCode value="include" />
    </element>
    <element id="Bundle.entry:enrollment">
      <path value="Bundle.entry" />
      <sliceName value="enrollment" />
      <min value="1" />
      <max value="1" />
    </element>
    <element id="Bundle.entry:enrollment.resource">
      <path value="Bundle.entry.resource" />
      <type>
        <code value="EnrollmentResponse" />
        <profile value="https://bpcs.exchange/fhir/StructureDefinition/profile-EnrollmentResponse" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="Bundle.entry:enrollment.search.mode">
      <path value="Bundle.entry.search.mode" />
      <patternCode value="include" />
    </element>
    <element id="Bundle.entry:delegate">
      <path value="Bundle.entry" />
      <sliceName value="delegate" />
      <max value="1" />
    </element>
    <element id="Bundle.entry:delegate.resource">
      <path value="Bundle.entry.resource" />
      <type>
        <code value="RelatedPerson" />
        <profile value="https://bpcs.exchange/fhir/StructureDefinition/profile-RelatedPerson-delegate" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="Bundle.entry:delegate.search.mode">
      <path value="Bundle.entry.search.mode" />
      <patternCode value="include" />
    </element>
    <element id="Bundle.entry:familyExpense">
      <path value="Bundle.entry" />
      <sliceName value="familyExpense" />
      <min value="4" />
      <max value="4" />
    </element>
    <element id="Bundle.entry:familyExpense.resource">
      <path value="Bundle.entry.resource" />
      <type>
        <code value="ExplanationOfBenefit" />
        <profile value="https://bpcs.exchange/fhir/StructureDefinition/profile-ExplanationOfBenefit-expenses-family-quarterly" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="Bundle.entry:familyExpense.search.mode">
      <path value="Bundle.entry.search.mode" />
      <patternCode value="include" />
    </element>
    <element id="Bundle.entry:memberCoverage">
      <path value="Bundle.entry" />
      <sliceName value="memberCoverage" />
      <min value="1" />
    </element>
    <element id="Bundle.entry:memberCoverage.resource">
      <path value="Bundle.entry.resource" />
      <type>
        <code value="Coverage" />
        <profile value="https://bpcs.exchange/fhir/StructureDefinition/profile-Coverage-individual-public" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="Bundle.entry:memberCoverage.search.mode">
      <path value="Bundle.entry.search.mode" />
      <patternCode value="include" />
    </element>
    <element id="Bundle.entry:recipient">
      <path value="Bundle.entry" />
      <sliceName value="recipient" />
      <min value="1" />
    </element>
    <element id="Bundle.entry:recipient.resource">
      <path value="Bundle.entry.resource" />
      <type>
        <code value="Patient" />
        <profile value="https://bpcs.exchange/fhir/StructureDefinition/profile-Patient-search" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="Bundle.entry:recipient.search.mode">
      <path value="Bundle.entry.search.mode" />
      <patternCode value="include" />
    </element>
    <element id="Bundle.entry:income">
      <path value="Bundle.entry" />
      <sliceName value="income" />
    </element>
    <element id="Bundle.entry:income.resource">
      <path value="Bundle.entry.resource" />
      <type>
        <code value="Observation" />
        <profile value="https://bpcs.exchange/fhir/StructureDefinition/profile-Observation-income-search" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="Bundle.entry:income.search.mode">
      <path value="Bundle.entry.search.mode" />
      <patternCode value="include" />
    </element>
    <element id="Bundle.entry:consent">
      <path value="Bundle.entry" />
      <sliceName value="consent" />
    </element>
    <element id="Bundle.entry:consent.resource">
      <path value="Bundle.entry.resource" />
      <type>
        <code value="Consent" />
        <profile value="https://bpcs.exchange/fhir/StructureDefinition/profile-Consent" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="Bundle.entry:consent.search.mode">
      <path value="Bundle.entry.search.mode" />
      <patternCode value="include" />
    </element>
    <element id="Bundle.entry:privateInsurance">
      <path value="Bundle.entry" />
      <sliceName value="privateInsurance" />
    </element>
    <element id="Bundle.entry:privateInsurance.resource">
      <path value="Bundle.entry.resource" />
      <type>
        <code value="Coverage" />
        <profile value="https://bpcs.exchange/fhir/StructureDefinition/profile-Coverage-individual-private" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="Bundle.entry:privateInsurance.resource.extension">
      <path value="Bundle.entry.resource.extension" />
      <min value="1" />
    </element>
    <element id="Bundle.entry:privateInsurance.search.mode">
      <path value="Bundle.entry.search.mode" />
      <patternCode value="include" />
    </element>
    <element id="Bundle.entry:expenses">
      <path value="Bundle.entry" />
      <sliceName value="expenses" />
      <min value="1" />
    </element>
    <element id="Bundle.entry:expenses.resource">
      <path value="Bundle.entry.resource" />
      <type>
        <code value="ExplanationOfBenefit" />
        <profile value="https://bpcs.exchange/fhir/StructureDefinition/profile-ExplanationOfBenefit-expenses-quarterly" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="Bundle.entry:expenses.search.mode">
      <path value="Bundle.entry.search.mode" />
      <patternCode value="include" />
    </element>
  </differential>
</StructureDefinition>