<StructureDefinition xmlns="http://hl7.org/fhir">
  <id value="profile-Parameters-coverage-application-individual" />
  <url value="https://bpcs.exchange/fhir/StructureDefinition/profile-Parameters-coverage-application-individual" />
  <name value="ParametersCoverageApplicationIndividual" />
  <title value="Coverage Application Individual Parameters Profile" />
  <status value="active" />
  <experimental value="false" />
  <description value="The parameters sent when invoking a $findApplicationIndividual operation." />
  <fhirVersion value="5.0.0" />
  <mapping>
    <identity value="BPCS" />
    <name value="Internal BPCS API" />
  </mapping>
  <kind value="resource" />
  <abstract value="false" />
  <type value="Parameters" />
  <baseDefinition value="http://hl7.org/fhir/StructureDefinition/Parameters" />
  <derivation value="constraint" />
  <differential>
    <element id="Parameters">
      <path value="Parameters" />
      <constraint>
        <key value="bpcs-pcai-1" />
        <severity value="error" />
        <human value="If _id or odbnum are specified, they must be the only parameters" />
        <expression value="parameter.where(name='_id' or name='odbNum').exists() implies parameter.count()=1" />
      </constraint>
    </element>
    <element id="Parameters.parameter">
      <path value="Parameters.parameter" />
      <slicing>
        <discriminator>
          <type value="value" />
          <path value="name" />
        </discriminator>
        <rules value="closed" />
      </slicing>
    </element>
    <element id="Parameters.parameter:_id">
      <path value="Parameters.parameter" />
      <sliceName value="_id" />
      <short value="Application number" />
      <definition value="The application number" />
      <max value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Parameters.parameter:_id.name">
      <path value="Parameters.parameter.name" />
      <patternString value="_id" />
    </element>
    <element id="Parameters.parameter:_id.value[x]">
      <path value="Parameters.parameter.value[x]" />
      <min value="1" />
      <type>
        <code value="string" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="Parameters.parameter:_id.resource">
      <path value="Parameters.parameter.resource" />
      <max value="0" />
    </element>
    <element id="Parameters.parameter:_id.part">
      <path value="Parameters.parameter.part" />
      <max value="0" />
    </element>
    <element id="Parameters.parameter:odbNum">
      <path value="Parameters.parameter" />
      <sliceName value="odbNum" />
      <short value="ODB number" />
      <definition value="The ODB number" />
      <max value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Parameters.parameter:odbNum.name">
      <path value="Parameters.parameter.name" />
      <patternString value="odbNum" />
    </element>
    <element id="Parameters.parameter:odbNum.value[x]">
      <path value="Parameters.parameter.value[x]" />
      <min value="1" />
      <type>
        <code value="string" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="Parameters.parameter:odbNum.resource">
      <path value="Parameters.parameter.resource" />
      <max value="0" />
    </element>
    <element id="Parameters.parameter:odbNum.part">
      <path value="Parameters.parameter.part" />
      <max value="0" />
    </element>
    <element id="Parameters.parameter:firstName">
      <path value="Parameters.parameter" />
      <sliceName value="firstName" />
      <short value="The first name of the recipient" />
      <definition value="The ODB number" />
      <max value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Parameters.parameter:firstName.name">
      <path value="Parameters.parameter.name" />
      <patternString value="firstName" />
    </element>
    <element id="Parameters.parameter:firstName.value[x]">
      <path value="Parameters.parameter.value[x]" />
      <min value="1" />
      <type>
        <code value="string" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="Parameters.parameter:firstName.resource">
      <path value="Parameters.parameter.resource" />
      <max value="0" />
    </element>
    <element id="Parameters.parameter:firstName.part">
      <path value="Parameters.parameter.part" />
      <max value="0" />
    </element>
    <element id="Parameters.parameter:middleName">
      <path value="Parameters.parameter" />
      <sliceName value="middleName" />
      <short value="The middle name of the recipient" />
      <definition value="The middle name" />
      <max value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Parameters.parameter:middleName.name">
      <path value="Parameters.parameter.name" />
      <patternString value="middleName" />
    </element>
    <element id="Parameters.parameter:middleName.value[x]">
      <path value="Parameters.parameter.value[x]" />
      <min value="1" />
      <type>
        <code value="string" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="Parameters.parameter:middleName.resource">
      <path value="Parameters.parameter.resource" />
      <max value="0" />
    </element>
    <element id="Parameters.parameter:middleName.part">
      <path value="Parameters.parameter.part" />
      <max value="0" />
    </element>
    <element id="Parameters.parameter:lastName">
      <path value="Parameters.parameter" />
      <sliceName value="lastName" />
      <short value="The last name of the recipient" />
      <definition value="The last name" />
      <max value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Parameters.parameter:lastName.name">
      <path value="Parameters.parameter.name" />
      <patternString value="lastName" />
    </element>
    <element id="Parameters.parameter:lastName.value[x]">
      <path value="Parameters.parameter.value[x]" />
      <min value="1" />
      <type>
        <code value="string" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="Parameters.parameter:lastName.resource">
      <path value="Parameters.parameter.resource" />
      <max value="0" />
    </element>
    <element id="Parameters.parameter:lastName.part">
      <path value="Parameters.parameter.part" />
      <max value="0" />
    </element>
    <element id="Parameters.parameter:homePhone">
      <path value="Parameters.parameter" />
      <sliceName value="homePhone" />
      <short value="The home Phone of the recipient" />
      <definition value="The home phone" />
      <max value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Parameters.parameter:homePhone.name">
      <path value="Parameters.parameter.name" />
      <patternString value="homePhone" />
    </element>
    <element id="Parameters.parameter:homePhone.value[x]">
      <path value="Parameters.parameter.value[x]" />
      <min value="1" />
      <type>
        <code value="string" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="Parameters.parameter:homePhone.resource">
      <path value="Parameters.parameter.resource" />
      <max value="0" />
    </element>
    <element id="Parameters.parameter:homePhone.part">
      <path value="Parameters.parameter.part" />
      <max value="0" />
    </element>
    <element id="Parameters.parameter:city">
      <path value="Parameters.parameter" />
      <sliceName value="city" />
      <short value="The city of the recipient" />
      <definition value="The city" />
      <max value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Parameters.parameter:city.name">
      <path value="Parameters.parameter.name" />
      <patternString value="city" />
    </element>
    <element id="Parameters.parameter:city.value[x]">
      <path value="Parameters.parameter.value[x]" />
      <min value="1" />
      <type>
        <code value="string" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="Parameters.parameter:city.resource">
      <path value="Parameters.parameter.resource" />
      <max value="0" />
    </element>
    <element id="Parameters.parameter:city.part">
      <path value="Parameters.parameter.part" />
      <max value="0" />
    </element>
    <element id="Parameters.parameter:postalCode">
      <path value="Parameters.parameter" />
      <sliceName value="postalCode" />
      <short value="The postal code of the recipient" />
      <definition value="The postal code" />
      <max value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Parameters.parameter:postalCode.name">
      <path value="Parameters.parameter.name" />
      <patternString value="postalCode" />
    </element>
    <element id="Parameters.parameter:postalCode.value[x]">
      <path value="Parameters.parameter.value[x]" />
      <min value="1" />
      <type>
        <code value="string" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="Parameters.parameter:postalCode.resource">
      <path value="Parameters.parameter.resource" />
      <max value="0" />
    </element>
    <element id="Parameters.parameter:postalCode.part">
      <path value="Parameters.parameter.part" />
      <max value="0" />
    </element>
    <element id="Parameters.parameter:email">
      <path value="Parameters.parameter" />
      <sliceName value="email" />
    </element>
    <element id="Parameters.parameter:email.name">
      <path value="Parameters.parameter.name" />
      <patternString value="email" />
    </element>
    <element id="Parameters.parameter:email.value[x]">
      <path value="Parameters.parameter.value[x]" />
      <min value="1" />
      <type>
        <code value="string" />
      </type>
      <mustSupport value="true" />
    </element>
  </differential>
</StructureDefinition>