<StructureDefinition xmlns="http://hl7.org/fhir">
  <id value="BundlePSAB" />
  <url value="https://www.alberta.ca/fhir/psab/StructureDefinition/BundlePSAB" />
  <version value="1.2.0" />
  <name value="BundlePSAB" />
  <title value="Bundle (PS-AB)" />
  <status value="draft" />
  <description value="This profile defines a set of constraints to the FHIR Bundle resource for use in Alberta Patient Summaries (PS-AB). It re-profiles the PS-CA Bundle profile and refines constraints applied to the Bundle resource by the PS-CA project to include hard constraints (invariants) than enforce what sections and resource elements are allowed to be present in an Alberta Patient Summary. These have been applied at the Bundle level as an alternative to forbidding elements through 0..0 cardinality - to balance the need for mechanical validation on Patient Summary against the re-use of clinical FHIR profiles under different contexts." />
  <fhirVersion value="4.0.1" />
  <kind value="resource" />
  <abstract value="false" />
  <type value="Bundle" />
  <baseDefinition value="http://fhir.infoway-inforoute.ca/io/psca/StructureDefinition/bundle-ca-ps" />
  <derivation value="constraint" />
  <differential>
    <element id="Bundle">
      <path value="Bundle" />
      <constraint>
        <key value="psab-bdl-1" />
        <severity value="error" />
        <human value="If Bundle.Composition.title is Patient Summary - AB, then the following details SHALL NOT be present in all resources within the bundle instance except the bundle itself: contained" />
        <expression value="Bundle.entry.where(resource is Composition).resource.where(title = 'Patient Summary - AB') implies &#xA;Bundle.entry.resource.where(contained.exists()).exists().not()" />
        <source value="https://www.alberta.ca/fhir/psab/StructureDefinition/BundlePSAB" />
      </constraint>
      <constraint>
        <key value="psab-bdl-ait-1" />
        <severity value="error" />
        <human value="If Bundle.Composition.title is Patient Summary - AB, then the following AllergyIntolerance details SHALL NOT be present: verificationStatus, encounter, recorder, asserter" />
        <expression value="Bundle.entry.where(resource is Composition).resource.where(title = 'Patient Summary - AB') implies &#xA;Bundle.entry.where(resource is AllergyIntolerance).resource.where(verificationStatus.exists()).exists().not() &#xA;and Bundle.entry.where(resource is AllergyIntolerance).resource.where(encounter.exists()).exists().not() &#xA;and Bundle.entry.where(resource is AllergyIntolerance).resource.where(recorder.exists()).exists().not() &#xA;and Bundle.entry.where(resource is AllergyIntolerance).resource.where(asserter.exists()).exists().not()" />
        <source value="https://www.alberta.ca/fhir/psab/StructureDefinition/BundlePSAB" />
      </constraint>
      <constraint>
        <key value="psab-bdl-con-1" />
        <severity value="error" />
        <human value="If Bundle.Composition.title is Patient Summary - AB, then the following Condition details SHALL NOT be present: verificationStatus, severity, encounter, abatement, recorder, asserter, stage, evidence" />
        <expression value="Bundle.entry.where(resource is Composition).resource.where(title = 'Patient Summary - AB') implies &#xA;Bundle.entry.where(resource is Condition).resource.where(verificationStatus.exists()).exists().not() &#xA;and Bundle.entry.where(resource is Condition).resource.where(severity.exists()).exists().not() &#xA;and Bundle.entry.where(resource is Condition).resource.where(encounter.exists()).exists().not() &#xA;and Bundle.entry.where(resource is Condition).resource.where(abatement.exists()).exists().not() &#xA;and Bundle.entry.where(resource is Condition).resource.where(recorder.exists()).exists().not() &#xA;and Bundle.entry.where(resource is Condition).resource.where(asserter.exists()).exists().not() &#xA;and Bundle.entry.where(resource is Condition).resource.where(stage.exists()).exists().not() &#xA;and Bundle.entry.where(resource is Condition).resource.where(evidence.exists()).exists().not()" />
        <source value="https://www.alberta.ca/fhir/psab/StructureDefinition/BundlePSAB" />
      </constraint>
      <constraint>
        <key value="psab-bdl-fhs-1" />
        <severity value="error" />
        <human value="If Bundle.Composition.title is Patient Summary - AB, then the following FamilyMemberHistory details SHALL NOT be present: instantiatesCanonical, instantiatesUri, reasonReference, condition.outcome, condition.contributedToDeath" />
        <expression value="Bundle.entry.where(resource is Composition).resource.where(title = 'Patient Summary - AB') implies &#xA;Bundle.entry.where(resource is FamilyMemberHistory).resource.where(instantiatesCanonical.exists()).exists().not() &#xA;and Bundle.entry.where(resource is FamilyMemberHistory).resource.where(instantiatesUri.exists()).exists().not() &#xA;and Bundle.entry.where(resource is FamilyMemberHistory).resource.where(reasonReference.exists()).exists().not() &#xA;and Bundle.entry.where(resource is FamilyMemberHistory).resource.where(condition.outcome.exists()).exists().not() &#xA;and Bundle.entry.where(resource is FamilyMemberHistory).resource.where(condition.contributedToDeath.exists()).exists().not()" />
        <source value="https://www.alberta.ca/fhir/psab/StructureDefinition/BundlePSAB" />
      </constraint>
      <constraint>
        <key value="psab-bdl-loc-1" />
        <severity value="error" />
        <human value="If Bundle.Composition.title is Patient Summary - AB then the following Location details SHALL NOT be present: telecom.use, and address.use, managingOrganization" />
        <expression value="Bundle.entry.where(resource is Composition).resource.where(title = 'Patient Summary - AB') implies &#xA;Bundle.entry.where(resource is Location).resource.where(telecom.use.exists()).exists().not() &#xA;and Bundle.entry.where(resource is Location).resource.where(address.use.exists()).exists().not() &#xA;and Bundle.entry.where(resource is Location).resource.where(managingOrganization.exists()).exists().not()" />
        <source value="https://www.alberta.ca/fhir/psab/StructureDefinition/BundlePSAB" />
      </constraint>
      <constraint>
        <key value="psab-bdl-med-2" />
        <severity value="error" />
        <human value="If Bundle.Composition.title is Patient Summary - AB, then the following Medication details SHALL NOT be present: status, manufacturer, amount, ingredient, batch" />
        <expression value="Bundle.entry.where(resource is Composition).resource.where(title = 'Patient Summary - AB') implies &#xA;Bundle.entry.where(resource is Medication).resource.where(status.exists()).exists().not() &#xA;and Bundle.entry.where(resource is Medication).resource.where(manufacturer.exists()).exists().not() &#xA;and Bundle.entry.where(resource is Medication).resource.where(amount.exists()).exists().not() &#xA;and Bundle.entry.where(resource is Medication).resource.where(ingredient.exists()).exists().not() &#xA;and Bundle.entry.where(resource is Medication).resource.where(batch.exists()).exists().not()" />
        <source value="https://www.alberta.ca/fhir/psab/StructureDefinition/BundlePSAB" />
      </constraint>
      <constraint>
        <key value="psab-bdl-mst-1" />
        <severity value="error" />
        <human value="If Bundle.Composition.title is Patient Summary - AB, then the following MedicationStatement details SHALL NOT be present: context, dateAsserted, informationSource, derivedFrom, reasonReference, basedOn, partOf" />
        <expression value="Bundle.entry.where(resource is Composition).resource.where(title = 'Patient Summary - AB') implies &#xA;Bundle.entry.where(resource is MedicationStatement).resource.where(context.exists()).exists().not() &#xA;and Bundle.entry.where(resource is MedicationStatement).resource.where(dateAsserted.exists()).exists().not() &#xA;and Bundle.entry.where(resource is MedicationStatement).resource.where(informationSource.exists()).exists().not() &#xA;and Bundle.entry.where(resource is MedicationStatement).resource.where(derivedFrom.exists()).exists().not() &#xA;and Bundle.entry.where(resource is MedicationStatement).resource.where(reasonReference.exists()).exists().not() &#xA;and Bundle.entry.where(resource is MedicationStatement).resource.where(basedOn.exists()).exists().not() &#xA;and Bundle.entry.where(resource is MedicationStatement).resource.where(partOf.exists()).exists().not()" />
        <source value="https://www.alberta.ca/fhir/psab/StructureDefinition/BundlePSAB" />
      </constraint>
      <constraint>
        <key value="psab-bdl-obs-1" />
        <severity value="error" />
        <human value="If Bundle.Composition.title is Patient Summary - AB, then the following vital sign observations SHALL NOT be present: body temperature, heart rate, oxygen saturation, respiratory rate, vital signs panel" />
        <expression value="Bundle.entry.where(resource is Composition).resource.where(title = 'Patient Summary - AB') implies &#xA;Bundle.entry.where(resource is Observation).resource.code.coding.exists(code in ('8310-5'|'8867-4'|'2708-6'|'9279-1'|'85353-1')).not()" />
        <source value="https://www.alberta.ca/fhir/psab/StructureDefinition/BundlePSAB" />
      </constraint>
      <constraint>
        <key value="psab-bdl-obs-vs-1" />
        <severity value="error" />
        <human value="If Bundle.Composition.title is Patient Summary - AB, then the following vital sign observation details SHALL NOT be present: basedOn, partOf, category.extension, category.coding.extension, code.extension, focus, encounter, issued, value.extension, dataAbsentReason , derivedFrom, specimen, device." />
        <expression value="Bundle.entry.where(resource is Composition).resource.where(title = 'Patient Summary - AB') implies&#xA;Bundle.entry.where(resource is Observation).resource.where((basedOn &#xA;or partOf &#xA;or category.extension &#xA;or category.coding.extension &#xA;or code.extension &#xA;or focus &#xA;or encounter &#xA;or issued &#xA;or value.extension &#xA;or dataAbsentReason &#xA;or derivedFrom &#xA;or specimen &#xA;or device) &#xA;and category.coding.code in ('vital-signs')).exists().not()" />
        <source value="https://www.alberta.ca/fhir/psab/StructureDefinition/BundlePSAB" />
      </constraint>
      <constraint>
        <key value="psab-bdl-obs-sh-1" />
        <severity value="error" />
        <human value="If Bundle.Composition.title is Patient Summary - AB, then the following social history observation details SHALL NOT be present: basedOn, partOf, focus, encounter, performer, specimen, device, hasMember, derivedFrom" />
        <expression value="Bundle.entry.where(resource is Composition).resource.where(title = 'Patient Summary - AB') implies &#xA;Bundle.entry.where(resource is Observation).resource.where((basedOn &#xA;or partOf &#xA;or focus &#xA;or encounter &#xA;or hasMember &#xA;or derivedFrom &#xA;or specimen &#xA;or device &#xA;or performer) &#xA;and category.coding.code in ('social-history')).exists().not()" />
        <source value="https://www.alberta.ca/fhir/psab/StructureDefinition/BundlePSAB" />
      </constraint>
      <constraint>
        <key value="psab-bdl-pat-1" />
        <severity value="error" />
        <human value="If Bundle.Composition.title is Patient Summary - AB, then the following Patient details SHALL NOT be present: text, active, address.text, maritalStatus, multipleBirth, photo,  contact.gender, contact.organization, contact.period, generalPractitioner, managingOrganization" />
        <expression value="Bundle.entry.where(resource is Composition).resource.where(title = 'Patient Summary - AB') implies &#xA;Bundle.entry.where(resource is Patient).resource.where(text.exists()).exists().not() &#xA;and Bundle.entry.where(resource is Patient).resource.where(active.exists()).exists().not() &#xA;and Bundle.entry.where(resource is Patient).resource.where(address.text.exists()).exists().not() &#xA;and Bundle.entry.where(resource is Patient).resource.where(maritalStatus.exists()).exists().not() &#xA;and Bundle.entry.where(resource is Patient).resource.where(multipleBirth.exists()).exists().not() &#xA;and Bundle.entry.where(resource is Patient).resource.where(photo.exists()).exists().not() &#xA;and Bundle.entry.where(resource is Patient).resource.where(contact.gender.exists()).exists().not() &#xA;and Bundle.entry.where(resource is Patient).resource.where(contact.organization.exists()).exists().not() &#xA;and Bundle.entry.where(resource is Patient).resource.where(contact.period.exists()).exists().not() &#xA;and Bundle.entry.where(resource is Patient).resource.where(generalPractitioner.exists()).exists().not() &#xA;and Bundle.entry.where(resource is Patient).resource.where(managingOrganization.exists()).exists().not()" />
        <source value="https://www.alberta.ca/fhir/psab/StructureDefinition/BundlePSAB" />
      </constraint>
      <constraint>
        <key value="psab-bdl-pat-2" />
        <severity value="error" />
        <human value="If Bundle.Composition.title is Patient Summary - AB, then the following Patient details SHALL be present: telecom:Phone" />
        <expression value="Bundle.entry.where(resource is Composition).resource.where(title = 'Patient Summary - AB') implies &#xA;Bundle.entry.where(resource is Patient).resource.telecom.where(system = 'phone').exists()" />
        <source value="https://www.alberta.ca/fhir/psab/StructureDefinition/BundlePSAB" />
      </constraint>
      <constraint>
        <key value="psab-bdl-prc-1" />
        <severity value="error" />
        <human value="If Bundle.Composition.title is Patient Summary - AB, then the following Practitioner details SHALL NOT be present: photo, qualification, and birthDate" />
        <expression value="Bundle.entry.where(resource is Composition).resource.where(title = 'Patient Summary - AB') implies &#xA;Bundle.entry.where(resource is Practitioner).resource.where(photo.exists()).exists().not() &#xA;and Bundle.entry.where(resource is Practitioner).resource.where(qualification.exists()).exists().not() &#xA;and Bundle.entry.where(resource is Practitioner).resource.where(birthDate.exists()).exists().not()" />
        <source value="https://www.alberta.ca/fhir/psab/StructureDefinition/BundlePSAB" />
      </constraint>
      <constraint>
        <key value="psab-bdl-prl-1" />
        <severity value="error" />
        <human value="If Bundle.Composition.title is Patient Summary - AB, then the following PractitionerRole details SHALL NOT be present: healthcareService, organization" />
        <expression value="Bundle.entry.where(resource is Composition).resource.where(title = 'Patient Summary - AB') implies &#xA;Bundle.entry.where(resource is PractitionerRole).resource.where(healthcareService.exists()).exists().not() and &#xA;Bundle.entry.where(resource is PractitionerRole).resource.where(organization.exists()).exists().not()" />
        <source value="https://www.alberta.ca/fhir/psab/StructureDefinition/BundlePSAB" />
      </constraint>
      <constraint>
        <key value="psab-bdl-prl-2" />
        <severity value="error" />
        <human value="If Bundle.Composition.title is Patient Summary - AB, then the following PractitionerRole details SHALL be present: specialty.coding.code" />
        <expression value="Bundle.entry.where(resource is Composition).resource.where(title = 'Patient Summary - AB') implies &#xA;Bundle.entry.where(resource is PractitionerRole).resource.where(specialty.coding.code.exists()).exists()" />
        <source value="https://www.alberta.ca/fhir/psab/StructureDefinition/BundlePSAB" />
      </constraint>
    </element>
    <element id="Bundle.meta.extension">
      <path value="Bundle.meta.extension" />
      <min value="1" />
    </element>
    <element id="Bundle.meta.extension:submissionMetadata">
      <path value="Bundle.meta.extension" />
      <sliceName value="submissionMetadata" />
      <min value="1" />
      <max value="*" />
      <type>
        <code value="Extension" />
        <profile value="https://www.alberta.ca/fhir/psab/StructureDefinition/ext-EntityIdentifierAndName" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="Bundle.meta.security">
      <path value="Bundle.meta.security" />
      <mustSupport value="true" />
      <binding>
        <strength value="extensible" />
        <valueSet value="https://www.alberta.ca/fhir/ValueSet/security-label" />
      </binding>
    </element>
    <element id="Bundle.entry:composition">
      <path value="Bundle.entry" />
      <sliceName value="composition" />
    </element>
    <element id="Bundle.entry:composition.fullUrl">
      <path value="Bundle.entry.fullUrl" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Bundle.entry:composition.resource">
      <path value="Bundle.entry.resource" />
      <type>
        <code value="Composition" />
        <profile value="https://www.alberta.ca/fhir/psab/StructureDefinition/CompositionPSAB" />
      </type>
    </element>
    <element id="Bundle.entry:composition.search">
      <path value="Bundle.entry.search" />
      <max value="0" />
    </element>
    <element id="Bundle.entry:composition.request">
      <path value="Bundle.entry.request" />
      <max value="0" />
    </element>
    <element id="Bundle.entry:composition.response">
      <path value="Bundle.entry.response" />
      <max value="0" />
    </element>
    <element id="Bundle.entry:patient">
      <path value="Bundle.entry" />
      <sliceName value="patient" />
    </element>
    <element id="Bundle.entry:patient.resource">
      <path value="Bundle.entry.resource" />
      <type>
        <code value="Patient" />
        <profile value="https://www.alberta.ca/fhir/psab/StructureDefinition/PatientPSAB" />
      </type>
    </element>
    <element id="Bundle.entry:patient.search">
      <path value="Bundle.entry.search" />
      <max value="0" />
    </element>
    <element id="Bundle.entry:patient.request">
      <path value="Bundle.entry.request" />
      <max value="0" />
    </element>
    <element id="Bundle.entry:patient.response">
      <path value="Bundle.entry.response" />
      <max value="0" />
    </element>
    <element id="Bundle.entry:allergyintolerance">
      <path value="Bundle.entry" />
      <sliceName value="allergyintolerance" />
    </element>
    <element id="Bundle.entry:allergyintolerance.search">
      <path value="Bundle.entry.search" />
      <max value="0" />
    </element>
    <element id="Bundle.entry:allergyintolerance.request">
      <path value="Bundle.entry.request" />
      <max value="0" />
    </element>
    <element id="Bundle.entry:allergyintolerance.response">
      <path value="Bundle.entry.response" />
      <max value="0" />
    </element>
    <element id="Bundle.entry:careplan">
      <path value="Bundle.entry" />
      <sliceName value="careplan" />
    </element>
    <element id="Bundle.entry:careplan.search">
      <path value="Bundle.entry.search" />
      <max value="0" />
    </element>
    <element id="Bundle.entry:careplan.request">
      <path value="Bundle.entry.request" />
      <max value="0" />
    </element>
    <element id="Bundle.entry:careplan.response">
      <path value="Bundle.entry.response" />
      <max value="0" />
    </element>
    <element id="Bundle.entry:clinicalimpression">
      <path value="Bundle.entry" />
      <sliceName value="clinicalimpression" />
    </element>
    <element id="Bundle.entry:clinicalimpression.search">
      <path value="Bundle.entry.search" />
      <max value="0" />
    </element>
    <element id="Bundle.entry:clinicalimpression.request">
      <path value="Bundle.entry.request" />
      <max value="0" />
    </element>
    <element id="Bundle.entry:clinicalimpression.response">
      <path value="Bundle.entry.response" />
      <max value="0" />
    </element>
    <element id="Bundle.entry:condition">
      <path value="Bundle.entry" />
      <sliceName value="condition" />
    </element>
    <element id="Bundle.entry:condition.search">
      <path value="Bundle.entry.search" />
      <max value="0" />
    </element>
    <element id="Bundle.entry:condition.request">
      <path value="Bundle.entry.request" />
      <max value="0" />
    </element>
    <element id="Bundle.entry:condition.response">
      <path value="Bundle.entry.response" />
      <max value="0" />
    </element>
    <element id="Bundle.entry:consent">
      <path value="Bundle.entry" />
      <sliceName value="consent" />
    </element>
    <element id="Bundle.entry:consent.search">
      <path value="Bundle.entry.search" />
      <max value="0" />
    </element>
    <element id="Bundle.entry:consent.request">
      <path value="Bundle.entry.request" />
      <max value="0" />
    </element>
    <element id="Bundle.entry:consent.response">
      <path value="Bundle.entry.response" />
      <max value="0" />
    </element>
    <element id="Bundle.entry:device">
      <path value="Bundle.entry" />
      <sliceName value="device" />
    </element>
    <element id="Bundle.entry:device.search">
      <path value="Bundle.entry.search" />
      <max value="0" />
    </element>
    <element id="Bundle.entry:device.request">
      <path value="Bundle.entry.request" />
      <max value="0" />
    </element>
    <element id="Bundle.entry:device.response">
      <path value="Bundle.entry.response" />
      <max value="0" />
    </element>
    <element id="Bundle.entry:deviceusestatement">
      <path value="Bundle.entry" />
      <sliceName value="deviceusestatement" />
    </element>
    <element id="Bundle.entry:deviceusestatement.search">
      <path value="Bundle.entry.search" />
      <max value="0" />
    </element>
    <element id="Bundle.entry:deviceusestatement.request">
      <path value="Bundle.entry.request" />
      <max value="0" />
    </element>
    <element id="Bundle.entry:deviceusestatement.response">
      <path value="Bundle.entry.response" />
      <max value="0" />
    </element>
    <element id="Bundle.entry:diagnosticreport">
      <path value="Bundle.entry" />
      <sliceName value="diagnosticreport" />
    </element>
    <element id="Bundle.entry:diagnosticreport.search">
      <path value="Bundle.entry.search" />
      <max value="0" />
    </element>
    <element id="Bundle.entry:diagnosticreport.request">
      <path value="Bundle.entry.request" />
      <max value="0" />
    </element>
    <element id="Bundle.entry:diagnosticreport.response">
      <path value="Bundle.entry.response" />
      <max value="0" />
    </element>
    <element id="Bundle.entry:documentreference">
      <path value="Bundle.entry" />
      <sliceName value="documentreference" />
    </element>
    <element id="Bundle.entry:documentreference.search">
      <path value="Bundle.entry.search" />
      <max value="0" />
    </element>
    <element id="Bundle.entry:documentreference.request">
      <path value="Bundle.entry.request" />
      <max value="0" />
    </element>
    <element id="Bundle.entry:documentreference.response">
      <path value="Bundle.entry.response" />
      <max value="0" />
    </element>
    <element id="Bundle.entry:familymemberhistory">
      <path value="Bundle.entry" />
      <sliceName value="familymemberhistory" />
    </element>
    <element id="Bundle.entry:familymemberhistory.search">
      <path value="Bundle.entry.search" />
      <max value="0" />
    </element>
    <element id="Bundle.entry:familymemberhistory.request">
      <path value="Bundle.entry.request" />
      <max value="0" />
    </element>
    <element id="Bundle.entry:familymemberhistory.response">
      <path value="Bundle.entry.response" />
      <max value="0" />
    </element>
    <element id="Bundle.entry:imagingstudy">
      <path value="Bundle.entry" />
      <sliceName value="imagingstudy" />
    </element>
    <element id="Bundle.entry:imagingstudy.search">
      <path value="Bundle.entry.search" />
      <max value="0" />
    </element>
    <element id="Bundle.entry:imagingstudy.request">
      <path value="Bundle.entry.request" />
      <max value="0" />
    </element>
    <element id="Bundle.entry:imagingstudy.response">
      <path value="Bundle.entry.response" />
      <max value="0" />
    </element>
    <element id="Bundle.entry:immunization">
      <path value="Bundle.entry" />
      <sliceName value="immunization" />
    </element>
    <element id="Bundle.entry:immunization.search">
      <path value="Bundle.entry.search" />
      <max value="0" />
    </element>
    <element id="Bundle.entry:immunization.request">
      <path value="Bundle.entry.request" />
      <max value="0" />
    </element>
    <element id="Bundle.entry:immunization.response">
      <path value="Bundle.entry.response" />
      <max value="0" />
    </element>
    <element id="Bundle.entry:immunizationrecommendation">
      <path value="Bundle.entry" />
      <sliceName value="immunizationrecommendation" />
    </element>
    <element id="Bundle.entry:immunizationrecommendation.search">
      <path value="Bundle.entry.search" />
      <max value="0" />
    </element>
    <element id="Bundle.entry:immunizationrecommendation.request">
      <path value="Bundle.entry.request" />
      <max value="0" />
    </element>
    <element id="Bundle.entry:immunizationrecommendation.response">
      <path value="Bundle.entry.response" />
      <max value="0" />
    </element>
    <element id="Bundle.entry:medication">
      <path value="Bundle.entry" />
      <sliceName value="medication" />
    </element>
    <element id="Bundle.entry:medication.search">
      <path value="Bundle.entry.search" />
      <max value="0" />
    </element>
    <element id="Bundle.entry:medication.request">
      <path value="Bundle.entry.request" />
      <max value="0" />
    </element>
    <element id="Bundle.entry:medication.response">
      <path value="Bundle.entry.response" />
      <max value="0" />
    </element>
    <element id="Bundle.entry:medicationrequest">
      <path value="Bundle.entry" />
      <sliceName value="medicationrequest" />
    </element>
    <element id="Bundle.entry:medicationrequest.search">
      <path value="Bundle.entry.search" />
      <max value="0" />
    </element>
    <element id="Bundle.entry:medicationrequest.request">
      <path value="Bundle.entry.request" />
      <max value="0" />
    </element>
    <element id="Bundle.entry:medicationrequest.response">
      <path value="Bundle.entry.response" />
      <max value="0" />
    </element>
    <element id="Bundle.entry:medicationstatement">
      <path value="Bundle.entry" />
      <sliceName value="medicationstatement" />
    </element>
    <element id="Bundle.entry:medicationstatement.search">
      <path value="Bundle.entry.search" />
      <max value="0" />
    </element>
    <element id="Bundle.entry:medicationstatement.request">
      <path value="Bundle.entry.request" />
      <max value="0" />
    </element>
    <element id="Bundle.entry:medicationstatement.response">
      <path value="Bundle.entry.response" />
      <max value="0" />
    </element>
    <element id="Bundle.entry:practitioner">
      <path value="Bundle.entry" />
      <sliceName value="practitioner" />
    </element>
    <element id="Bundle.entry:practitioner.search">
      <path value="Bundle.entry.search" />
      <max value="0" />
    </element>
    <element id="Bundle.entry:practitioner.request">
      <path value="Bundle.entry.request" />
      <max value="0" />
    </element>
    <element id="Bundle.entry:practitioner.response">
      <path value="Bundle.entry.response" />
      <max value="0" />
    </element>
    <element id="Bundle.entry:practitionerrole">
      <path value="Bundle.entry" />
      <sliceName value="practitionerrole" />
    </element>
    <element id="Bundle.entry:practitionerrole.search">
      <path value="Bundle.entry.search" />
      <max value="0" />
    </element>
    <element id="Bundle.entry:practitionerrole.request">
      <path value="Bundle.entry.request" />
      <max value="0" />
    </element>
    <element id="Bundle.entry:practitionerrole.response">
      <path value="Bundle.entry.response" />
      <max value="0" />
    </element>
    <element id="Bundle.entry:procedure">
      <path value="Bundle.entry" />
      <sliceName value="procedure" />
    </element>
    <element id="Bundle.entry:procedure.search">
      <path value="Bundle.entry.search" />
      <max value="0" />
    </element>
    <element id="Bundle.entry:procedure.request">
      <path value="Bundle.entry.request" />
      <max value="0" />
    </element>
    <element id="Bundle.entry:procedure.response">
      <path value="Bundle.entry.response" />
      <max value="0" />
    </element>
    <element id="Bundle.entry:observation-pregnancy-edd">
      <path value="Bundle.entry" />
      <sliceName value="observation-pregnancy-edd" />
    </element>
    <element id="Bundle.entry:observation-pregnancy-edd.search">
      <path value="Bundle.entry.search" />
      <max value="0" />
    </element>
    <element id="Bundle.entry:observation-pregnancy-edd.request">
      <path value="Bundle.entry.request" />
      <max value="0" />
    </element>
    <element id="Bundle.entry:observation-pregnancy-edd.response">
      <path value="Bundle.entry.response" />
      <max value="0" />
    </element>
    <element id="Bundle.entry:observation-pregnancy-outcome">
      <path value="Bundle.entry" />
      <sliceName value="observation-pregnancy-outcome" />
    </element>
    <element id="Bundle.entry:observation-pregnancy-outcome.search">
      <path value="Bundle.entry.search" />
      <max value="0" />
    </element>
    <element id="Bundle.entry:observation-pregnancy-outcome.request">
      <path value="Bundle.entry.request" />
      <max value="0" />
    </element>
    <element id="Bundle.entry:observation-pregnancy-outcome.response">
      <path value="Bundle.entry.response" />
      <max value="0" />
    </element>
    <element id="Bundle.entry:observation-pregnancy-status">
      <path value="Bundle.entry" />
      <sliceName value="observation-pregnancy-status" />
    </element>
    <element id="Bundle.entry:observation-pregnancy-status.search">
      <path value="Bundle.entry.search" />
      <max value="0" />
    </element>
    <element id="Bundle.entry:observation-pregnancy-status.request">
      <path value="Bundle.entry.request" />
      <max value="0" />
    </element>
    <element id="Bundle.entry:observation-pregnancy-status.response">
      <path value="Bundle.entry.response" />
      <max value="0" />
    </element>
    <element id="Bundle.entry:observation-alcohol-use">
      <path value="Bundle.entry" />
      <sliceName value="observation-alcohol-use" />
    </element>
    <element id="Bundle.entry:observation-alcohol-use.search">
      <path value="Bundle.entry.search" />
      <max value="0" />
    </element>
    <element id="Bundle.entry:observation-alcohol-use.request">
      <path value="Bundle.entry.request" />
      <max value="0" />
    </element>
    <element id="Bundle.entry:observation-alcohol-use.response">
      <path value="Bundle.entry.response" />
      <max value="0" />
    </element>
    <element id="Bundle.entry:observation-tobacco-use">
      <path value="Bundle.entry" />
      <sliceName value="observation-tobacco-use" />
    </element>
    <element id="Bundle.entry:observation-tobacco-use.search">
      <path value="Bundle.entry.search" />
      <max value="0" />
    </element>
    <element id="Bundle.entry:observation-tobacco-use.request">
      <path value="Bundle.entry.request" />
      <max value="0" />
    </element>
    <element id="Bundle.entry:observation-tobacco-use.response">
      <path value="Bundle.entry.response" />
      <max value="0" />
    </element>
    <element id="Bundle.entry:observation-results-laboratory-pathology">
      <path value="Bundle.entry" />
      <sliceName value="observation-results-laboratory-pathology" />
    </element>
    <element id="Bundle.entry:observation-results-laboratory-pathology.search">
      <path value="Bundle.entry.search" />
      <max value="0" />
    </element>
    <element id="Bundle.entry:observation-results-laboratory-pathology.request">
      <path value="Bundle.entry.request" />
      <max value="0" />
    </element>
    <element id="Bundle.entry:observation-results-laboratory-pathology.response">
      <path value="Bundle.entry.response" />
      <max value="0" />
    </element>
    <element id="Bundle.entry:observation-results-radiology">
      <path value="Bundle.entry" />
      <sliceName value="observation-results-radiology" />
    </element>
    <element id="Bundle.entry:observation-results-radiology.search">
      <path value="Bundle.entry.search" />
      <max value="0" />
    </element>
    <element id="Bundle.entry:observation-results-radiology.request">
      <path value="Bundle.entry.request" />
      <max value="0" />
    </element>
    <element id="Bundle.entry:observation-results-radiology.response">
      <path value="Bundle.entry.response" />
      <max value="0" />
    </element>
    <element id="Bundle.entry:observation-bmi">
      <path value="Bundle.entry" />
      <sliceName value="observation-bmi" />
    </element>
    <element id="Bundle.entry:observation-bmi.search">
      <path value="Bundle.entry.search" />
      <max value="0" />
    </element>
    <element id="Bundle.entry:observation-bmi.request">
      <path value="Bundle.entry.request" />
      <max value="0" />
    </element>
    <element id="Bundle.entry:observation-bmi.response">
      <path value="Bundle.entry.response" />
      <max value="0" />
    </element>
    <element id="Bundle.entry:observation-bp">
      <path value="Bundle.entry" />
      <sliceName value="observation-bp" />
    </element>
    <element id="Bundle.entry:observation-bp.search">
      <path value="Bundle.entry.search" />
      <max value="0" />
    </element>
    <element id="Bundle.entry:observation-bp.request">
      <path value="Bundle.entry.request" />
      <max value="0" />
    </element>
    <element id="Bundle.entry:observation-bp.response">
      <path value="Bundle.entry.response" />
      <max value="0" />
    </element>
    <element id="Bundle.entry:observation-bodyheight">
      <path value="Bundle.entry" />
      <sliceName value="observation-bodyheight" />
    </element>
    <element id="Bundle.entry:observation-bodyheight.search">
      <path value="Bundle.entry.search" />
      <max value="0" />
    </element>
    <element id="Bundle.entry:observation-bodyheight.request">
      <path value="Bundle.entry.request" />
      <max value="0" />
    </element>
    <element id="Bundle.entry:observation-bodyheight.response">
      <path value="Bundle.entry.response" />
      <max value="0" />
    </element>
    <element id="Bundle.entry:observation-bodyweight">
      <path value="Bundle.entry" />
      <sliceName value="observation-bodyweight" />
    </element>
    <element id="Bundle.entry:observation-bodyweight.search">
      <path value="Bundle.entry.search" />
      <max value="0" />
    </element>
    <element id="Bundle.entry:observation-bodyweight.request">
      <path value="Bundle.entry.request" />
      <max value="0" />
    </element>
    <element id="Bundle.entry:observation-bodyweight.response">
      <path value="Bundle.entry.response" />
      <max value="0" />
    </element>
    <element id="Bundle.entry:observation-bodytemp">
      <path value="Bundle.entry" />
      <sliceName value="observation-bodytemp" />
    </element>
    <element id="Bundle.entry:observation-bodytemp.search">
      <path value="Bundle.entry.search" />
      <max value="0" />
    </element>
    <element id="Bundle.entry:observation-bodytemp.request">
      <path value="Bundle.entry.request" />
      <max value="0" />
    </element>
    <element id="Bundle.entry:observation-bodytemp.response">
      <path value="Bundle.entry.response" />
      <max value="0" />
    </element>
    <element id="Bundle.entry:observation-headcircum">
      <path value="Bundle.entry" />
      <sliceName value="observation-headcircum" />
    </element>
    <element id="Bundle.entry:observation-headcircum.search">
      <path value="Bundle.entry.search" />
      <max value="0" />
    </element>
    <element id="Bundle.entry:observation-headcircum.request">
      <path value="Bundle.entry.request" />
      <max value="0" />
    </element>
    <element id="Bundle.entry:observation-headcircum.response">
      <path value="Bundle.entry.response" />
      <max value="0" />
    </element>
    <element id="Bundle.entry:observation-heartrate">
      <path value="Bundle.entry" />
      <sliceName value="observation-heartrate" />
    </element>
    <element id="Bundle.entry:observation-heartrate.search">
      <path value="Bundle.entry.search" />
      <max value="0" />
    </element>
    <element id="Bundle.entry:observation-heartrate.request">
      <path value="Bundle.entry.request" />
      <max value="0" />
    </element>
    <element id="Bundle.entry:observation-heartrate.response">
      <path value="Bundle.entry.response" />
      <max value="0" />
    </element>
    <element id="Bundle.entry:observation-oxygensat">
      <path value="Bundle.entry" />
      <sliceName value="observation-oxygensat" />
    </element>
    <element id="Bundle.entry:observation-oxygensat.search">
      <path value="Bundle.entry.search" />
      <max value="0" />
    </element>
    <element id="Bundle.entry:observation-oxygensat.request">
      <path value="Bundle.entry.request" />
      <max value="0" />
    </element>
    <element id="Bundle.entry:observation-oxygensat.response">
      <path value="Bundle.entry.response" />
      <max value="0" />
    </element>
    <element id="Bundle.entry:observation-resprate">
      <path value="Bundle.entry" />
      <sliceName value="observation-resprate" />
    </element>
    <element id="Bundle.entry:observation-resprate.search">
      <path value="Bundle.entry.search" />
      <max value="0" />
    </element>
    <element id="Bundle.entry:observation-resprate.request">
      <path value="Bundle.entry.request" />
      <max value="0" />
    </element>
    <element id="Bundle.entry:observation-resprate.response">
      <path value="Bundle.entry.response" />
      <max value="0" />
    </element>
    <element id="Bundle.entry:observation-vitalspanel">
      <path value="Bundle.entry" />
      <sliceName value="observation-vitalspanel" />
    </element>
    <element id="Bundle.entry:observation-vitalspanel.search">
      <path value="Bundle.entry.search" />
      <max value="0" />
    </element>
    <element id="Bundle.entry:observation-vitalspanel.request">
      <path value="Bundle.entry.request" />
      <max value="0" />
    </element>
    <element id="Bundle.entry:observation-vitalspanel.response">
      <path value="Bundle.entry.response" />
      <max value="0" />
    </element>
    <element id="Bundle.entry:organization-lab">
      <path value="Bundle.entry" />
      <sliceName value="organization-lab" />
    </element>
    <element id="Bundle.entry:organization-lab.search">
      <path value="Bundle.entry.search" />
      <max value="0" />
    </element>
    <element id="Bundle.entry:organization-lab.request">
      <path value="Bundle.entry.request" />
      <max value="0" />
    </element>
    <element id="Bundle.entry:organization-lab.response">
      <path value="Bundle.entry.response" />
      <max value="0" />
    </element>
    <element id="Bundle.entry:specimen">
      <path value="Bundle.entry" />
      <sliceName value="specimen" />
    </element>
    <element id="Bundle.entry:specimen.search">
      <path value="Bundle.entry.search" />
      <max value="0" />
    </element>
    <element id="Bundle.entry:specimen.request">
      <path value="Bundle.entry.request" />
      <max value="0" />
    </element>
    <element id="Bundle.entry:specimen.response">
      <path value="Bundle.entry.response" />
      <max value="0" />
    </element>
  </differential>
</StructureDefinition>