<StructureDefinition xmlns="http://hl7.org/fhir">
  <id value="Bundle-uv-ips" />
  <url value="http://hl7.org/fhir/uv/ips/StructureDefinition/Bundle-uv-ips" />
  <name value="BundleUvIps" />
  <title value="Bundle - IPS" />
  <status value="active" />
  <description value="This profile represents the constraints applied to the Bundle resource by the International Patient Summary (IPS) FHIR Implementation Guide." />
  <purpose value="An International Patient Summary (IPS) bundle is an electronic health record extract containing essential healthcare information about a subject of care, comprising at least the required elements of the IPS dataset. The IPS dataset is minimal and non-exhaustive; specialty-agnostic and condition-independent; but still clinically relevant. As specified in EN 17269 and ISO 27269, it is designed for supporting the use case scenario for ‘unplanned, cross border care’, but it is not limited to it. It is intended to be international, i.e., to provide generic solutions for global application beyond a particular region or country." />
  <kind value="resource" />
  <abstract value="false" />
  <type value="Bundle" />
  <baseDefinition value="http://hl7.org/fhir/StructureDefinition/Bundle" />
  <derivation value="constraint" />
  <differential>
    <element id="Bundle">
      <path value="Bundle" />
      <short value="International Patient Summary Bundle" />
      <definition value="International Patient Summary Bundle. &#xD;&#xA;A container for a collection of resources in the patient summary document." />
      <constraint>
        <key value="bdl-ips-1" />
        <severity value="error" />
        <human value="An IPS document must have no additional Composition (including Composition subclass) resources besides the first." />
        <expression value="entry.tail().where(resource is Composition).empty()" />
        <source value="http://hl7.org/fhir/uv/ips/StructureDefinition/Bundle-uv-ips" />
      </constraint>
    </element>
    <element id="Bundle.identifier">
      <path value="Bundle.identifier" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Bundle.type">
      <path value="Bundle.type" />
      <fixedCode value="document" />
    </element>
    <element id="Bundle.timestamp">
      <path value="Bundle.timestamp" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Bundle.link">
      <path value="Bundle.link" />
      <max value="0" />
    </element>
    <element id="Bundle.entry">
      <path value="Bundle.entry" />
      <slicing>
        <discriminator>
          <type value="type" />
          <path value="resource" />
        </discriminator>
        <discriminator>
          <type value="profile" />
          <path value="resource" />
        </discriminator>
        <rules value="open" />
      </slicing>
      <short value="Entry resource in the patient summary bundle" />
      <definition value="An entry resource included in the patient summary document bundle resource." />
      <comment value="Must contain the IPS Composition as the first entry (only a single Composition resource instance may be included).  Additional constraints are specified in the IPS Composition profile." />
      <min value="1" />
      <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.search">
      <path value="Bundle.entry.search" />
      <max value="0" />
    </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>
    <element id="Bundle.entry:composition">
      <path value="Bundle.entry" />
      <sliceName value="composition" />
      <min value="1" />
      <max value="1" />
    </element>
    <element id="Bundle.entry:composition.resource">
      <path value="Bundle.entry.resource" />
      <min value="1" />
      <type>
        <code value="Composition" />
        <profile value="http://hl7.org/fhir/uv/ips/StructureDefinition/Composition-uv-ips" />
      </type>
    </element>
    <element id="Bundle.entry:patient">
      <path value="Bundle.entry" />
      <sliceName value="patient" />
      <min value="1" />
      <max value="1" />
    </element>
    <element id="Bundle.entry:patient.resource">
      <path value="Bundle.entry.resource" />
      <min value="1" />
      <type>
        <code value="Patient" />
        <profile value="http://hl7.org/fhir/uv/ips/StructureDefinition/Patient-uv-ips" />
      </type>
    </element>
    <element id="Bundle.entry:allergyintolerance">
      <path value="Bundle.entry" />
      <sliceName value="allergyintolerance" />
    </element>
    <element id="Bundle.entry:allergyintolerance.resource">
      <path value="Bundle.entry.resource" />
      <min value="1" />
      <type>
        <code value="AllergyIntolerance" />
        <profile value="http://hl7.org/fhir/uv/ips/StructureDefinition/AllergyIntolerance-uv-ips" />
      </type>
    </element>
    <element id="Bundle.entry:condition">
      <path value="Bundle.entry" />
      <sliceName value="condition" />
    </element>
    <element id="Bundle.entry:condition.resource">
      <path value="Bundle.entry.resource" />
      <min value="1" />
      <type>
        <code value="Condition" />
        <profile value="http://hl7.org/fhir/uv/ips/StructureDefinition/Condition-uv-ips" />
      </type>
    </element>
    <element id="Bundle.entry:device">
      <path value="Bundle.entry" />
      <sliceName value="device" />
    </element>
    <element id="Bundle.entry:device.resource">
      <path value="Bundle.entry.resource" />
      <min value="1" />
      <type>
        <code value="Device" />
        <profile value="http://hl7.org/fhir/StructureDefinition/Device" />
      </type>
    </element>
    <element id="Bundle.entry:deviceusestatement">
      <path value="Bundle.entry" />
      <sliceName value="deviceusestatement" />
    </element>
    <element id="Bundle.entry:deviceusestatement.resource">
      <path value="Bundle.entry.resource" />
      <min value="1" />
      <type>
        <code value="DeviceUseStatement" />
        <profile value="http://hl7.org/fhir/uv/ips/StructureDefinition/DeviceUseStatement-uv-ips" />
      </type>
    </element>
    <element id="Bundle.entry:diagnosticreport">
      <path value="Bundle.entry" />
      <sliceName value="diagnosticreport" />
    </element>
    <element id="Bundle.entry:diagnosticreport.resource">
      <path value="Bundle.entry.resource" />
      <min value="1" />
      <type>
        <code value="DiagnosticReport" />
        <profile value="http://hl7.org/fhir/uv/ips/StructureDefinition/DiagnosticReport-uv-ips" />
      </type>
    </element>
    <element id="Bundle.entry:imagingstudy">
      <path value="Bundle.entry" />
      <sliceName value="imagingstudy" />
    </element>
    <element id="Bundle.entry:imagingstudy.resource">
      <path value="Bundle.entry.resource" />
      <min value="1" />
      <type>
        <code value="ImagingStudy" />
        <profile value="http://hl7.org/fhir/uv/ips/StructureDefinition/ImagingStudy-uv-ips" />
      </type>
    </element>
    <element id="Bundle.entry:immunization">
      <path value="Bundle.entry" />
      <sliceName value="immunization" />
    </element>
    <element id="Bundle.entry:immunization.resource">
      <path value="Bundle.entry.resource" />
      <min value="1" />
      <type>
        <code value="Immunization" />
        <profile value="http://hl7.org/fhir/uv/ips/StructureDefinition/Immunization-uv-ips" />
      </type>
    </element>
    <element id="Bundle.entry:media">
      <path value="Bundle.entry" />
      <sliceName value="media" />
    </element>
    <element id="Bundle.entry:media.resource">
      <path value="Bundle.entry.resource" />
      <min value="1" />
      <type>
        <code value="Media" />
        <profile value="http://hl7.org/fhir/uv/ips/StructureDefinition/Media-observation-uv-ips" />
      </type>
    </element>
    <element id="Bundle.entry:medication">
      <path value="Bundle.entry" />
      <sliceName value="medication" />
    </element>
    <element id="Bundle.entry:medication.resource">
      <path value="Bundle.entry.resource" />
      <min value="1" />
      <type>
        <code value="Medication" />
        <profile value="http://hl7.org/fhir/uv/ips/StructureDefinition/Medication-uv-ips" />
      </type>
    </element>
    <element id="Bundle.entry:medicationrequest">
      <path value="Bundle.entry" />
      <sliceName value="medicationrequest" />
    </element>
    <element id="Bundle.entry:medicationrequest.resource">
      <path value="Bundle.entry.resource" />
      <min value="1" />
      <type>
        <code value="MedicationRequest" />
        <profile value="http://hl7.org/fhir/uv/ips/StructureDefinition/MedicationRequest-uv-ips" />
      </type>
    </element>
    <element id="Bundle.entry:medicationstatement">
      <path value="Bundle.entry" />
      <sliceName value="medicationstatement" />
    </element>
    <element id="Bundle.entry:medicationstatement.resource">
      <path value="Bundle.entry.resource" />
      <min value="1" />
      <type>
        <code value="MedicationStatement" />
        <profile value="http://hl7.org/fhir/uv/ips/StructureDefinition/MedicationStatement-uv-ips" />
      </type>
    </element>
    <element id="Bundle.entry:practitioner">
      <path value="Bundle.entry" />
      <sliceName value="practitioner" />
    </element>
    <element id="Bundle.entry:practitioner.resource">
      <path value="Bundle.entry.resource" />
      <min value="1" />
      <type>
        <code value="Practitioner" />
        <profile value="http://hl7.org/fhir/uv/ips/StructureDefinition/Practitioner-uv-ips" />
      </type>
    </element>
    <element id="Bundle.entry:practitionerrole">
      <path value="Bundle.entry" />
      <sliceName value="practitionerrole" />
    </element>
    <element id="Bundle.entry:practitionerrole.resource">
      <path value="Bundle.entry.resource" />
      <min value="1" />
      <type>
        <code value="PractitionerRole" />
        <profile value="http://hl7.org/fhir/uv/ips/StructureDefinition/PractitionerRole-uv-ips" />
      </type>
    </element>
    <element id="Bundle.entry:procedure">
      <path value="Bundle.entry" />
      <sliceName value="procedure" />
    </element>
    <element id="Bundle.entry:procedure.resource">
      <path value="Bundle.entry.resource" />
      <min value="1" />
      <type>
        <code value="Procedure" />
        <profile value="http://hl7.org/fhir/uv/ips/StructureDefinition/Procedure-uv-ips" />
      </type>
    </element>
    <element id="Bundle.entry:organization">
      <path value="Bundle.entry" />
      <sliceName value="organization" />
    </element>
    <element id="Bundle.entry:organization.resource">
      <path value="Bundle.entry.resource" />
      <min value="1" />
      <type>
        <code value="Organization" />
        <profile value="http://hl7.org/fhir/uv/ips/StructureDefinition/Organization-uv-ips" />
      </type>
    </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.resource">
      <path value="Bundle.entry.resource" />
      <min value="1" />
      <type>
        <code value="Observation" />
        <profile value="http://hl7.org/fhir/uv/ips/StructureDefinition/Observation-pregnancy-edd-uv-ips" />
      </type>
    </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.resource">
      <path value="Bundle.entry.resource" />
      <min value="1" />
      <type>
        <code value="Observation" />
        <profile value="http://hl7.org/fhir/uv/ips/StructureDefinition/Observation-pregnancy-outcome-uv-ips" />
      </type>
    </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.resource">
      <path value="Bundle.entry.resource" />
      <min value="1" />
      <type>
        <code value="Observation" />
        <profile value="http://hl7.org/fhir/uv/ips/StructureDefinition/Observation-pregnancy-status-uv-ips" />
      </type>
    </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.resource">
      <path value="Bundle.entry.resource" />
      <min value="1" />
      <type>
        <code value="Observation" />
        <profile value="http://hl7.org/fhir/uv/ips/StructureDefinition/Observation-alcoholuse-uv-ips" />
      </type>
    </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.resource">
      <path value="Bundle.entry.resource" />
      <min value="1" />
      <type>
        <code value="Observation" />
        <profile value="http://hl7.org/fhir/uv/ips/StructureDefinition/Observation-tobaccouse-uv-ips" />
      </type>
    </element>
    <element id="Bundle.entry:observation-results">
      <path value="Bundle.entry" />
      <sliceName value="observation-results" />
    </element>
    <element id="Bundle.entry:observation-results.resource">
      <path value="Bundle.entry.resource" />
      <min value="1" />
      <type>
        <code value="Observation" />
        <profile value="http://hl7.org/fhir/uv/ips/StructureDefinition/Observation-results-uv-ips" />
      </type>
    </element>
    <element id="Bundle.entry:specimen">
      <path value="Bundle.entry" />
      <sliceName value="specimen" />
    </element>
    <element id="Bundle.entry:specimen.resource">
      <path value="Bundle.entry.resource" />
      <min value="1" />
      <type>
        <code value="Specimen" />
        <profile value="http://hl7.org/fhir/uv/ips/StructureDefinition/Specimen-uv-ips" />
      </type>
    </element>
  </differential>
</StructureDefinition>