<StructureDefinition xmlns="http://hl7.org/fhir">
  <id value="profile-Observation-alert-update" />
  <url value="https://bpcs.exchange/fhir/StructureDefinition/profile-Observation-alert-update" />
  <name value="ObservationAlertUpdate" />
  <title value="Observation Alerts and Special Handling Update Profile" />
  <status value="active" />
  <experimental value="false" />
  <description value="A profile for creating alert and special handling observations" />
  <fhirVersion value="5.0.0" />
  <mapping>
    <identity value="BPCS" />
    <name value="Internal BPCS API" />
  </mapping>
  <kind value="resource" />
  <abstract value="true" />
  <type value="Observation" />
  <baseDefinition value="https://bpcs.exchange/fhir/StructureDefinition/profile-Observation-alert-base" />
  <derivation value="constraint" />
  <differential>
    <element id="Observation.component">
      <path value="Observation.component" />
      <slicing>
        <discriminator>
          <type value="value" />
          <path value="code" />
        </discriminator>
        <rules value="open" />
      </slicing>
      <min value="1" />
    </element>
    <element id="Observation.component:note">
      <path value="Observation.component" />
      <sliceName value="note" />
      <comment value="This is included on the initial update, but will not be returned in searches on the alert or special handling flags.  Instead, notes will be retrieved as part of the list of notes associated with the member or application." />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Observation.component:note.code">
      <path value="Observation.component.code" />
      <short value="This is a 'note'" />
      <patternCodeableConcept>
        <coding>
          <system value="http://loinc.org" />
          <code value="34109-9" />
        </coding>
      </patternCodeableConcept>
      <mustSupport value="true" />
    </element>
    <element id="Observation.component:note.value[x]">
      <path value="Observation.component.value[x]" />
      <slicing>
        <discriminator>
          <type value="type" />
          <path value="$this" />
        </discriminator>
        <rules value="closed" />
      </slicing>
      <short value="Note text" />
      <min value="1" />
      <type>
        <code value="string" />
      </type>
      <type>
        <code value="boolean" />
      </type>
      <mustSupport value="true" />
      <mapping>
        <identity value="BPCS" />
        <map value="ApplicationNoteDTO.note" />
      </mapping>
    </element>
    <element id="Observation.component:note.value[x]:valueBoolean">
      <path value="Observation.component.value[x]" />
      <sliceName value="valueBoolean" />
      <type>
        <code value="boolean" />
      </type>
      <patternBoolean value="true" />
      <mustSupport value="true" />
    </element>
    <element id="Observation.component:note.value[x]:valueString">
      <path value="Observation.component.value[x]" />
      <sliceName value="valueString" />
      <type>
        <code value="string" />
      </type>
      <mustSupport value="true" />
    </element>
  </differential>
</StructureDefinition>