<StructureDefinition xmlns="http://hl7.org/fhir">
  <url value="https://example.org/fhir/StructureDefinition/MyPatientSI" />
  <name value="MyPatientSI" />
  <status value="draft" />
  <fhirVersion value="4.3.0" />
  <kind value="resource" />
  <abstract value="false" />
  <type value="Patient" />
  <baseDefinition value="https://nijz.si/rdsp/fhir/StructureDefinition/patientSI" />
  <derivation value="constraint" />
  <differential>
    <element id="Patient.telecom">
      <path value="Patient.telecom" />
      <slicing>
        <discriminator>
          <type value="value" />
          <path value="value" />
        </discriminator>
        <rules value="open" />
      </slicing>
    </element>
    <element id="Patient.telecom:unverified">
      <path value="Patient.telecom" />
      <sliceName value="unverified" />
    </element>
    <element id="Patient.telecom:unverified.extension:telecomDetailsSI">
      <path value="Patient.telecom.extension" />
      <sliceName value="telecomDetailsSI" />
      <type>
        <code value="Extension" />
        <profile value="https://nijz.si/rdsp/fhir/StructureDefinition/TelecomDetails" />
      </type>
      <isModifier value="false" />
    </element>
    <element id="Patient.telecom:unverified.extension:telecomDetailsSI.extension:TelecomConfirmed">
      <path value="Patient.telecom.extension.extension" />
      <sliceName value="TelecomConfirmed" />
    </element>
    <element id="Patient.telecom:unverified.extension:telecomDetailsSI.extension:TelecomConfirmed.value[x]">
      <path value="Patient.telecom.extension.extension.value[x]" />
      <fixedBoolean value="false" />
    </element>
    <element id="Patient.telecom:unverified.value">
      <path value="Patient.telecom.value" />
      <constraint>
        <key value="telecom-value-constraint-length" />
        <severity value="error" />
        <human value="Telecom value should be a phone number with 6 to 10 digits" />
        <expression value="telecom.where(system='phone').value.matches('^\\d{6,10}$')" />
        <xpath value="exists(f:telecom[f:system/@value='phone']/f:value/@value)" />
        <source value="https://nijz.si/rdsp/fhir/StructureDefinition/custom-Patient-telecom" />
      </constraint>
    </element>
    <element id="Patient.telecom:verified">
      <path value="Patient.telecom" />
      <sliceName value="verified" />
      <max value="1" />
    </element>
    <element id="Patient.telecom:verified.extension:telecomDetailsSI">
      <path value="Patient.telecom.extension" />
      <sliceName value="telecomDetailsSI" />
      <type>
        <code value="Extension" />
        <profile value="https://nijz.si/rdsp/fhir/StructureDefinition/TelecomDetails" />
      </type>
      <isModifier value="false" />
    </element>
    <element id="Patient.telecom:verified.extension:telecomDetailsSI.extension:TelecomConfirmed">
      <path value="Patient.telecom.extension.extension" />
      <sliceName value="TelecomConfirmed" />
    </element>
    <element id="Patient.telecom:verified.extension:telecomDetailsSI.extension:TelecomConfirmed.value[x]">
      <path value="Patient.telecom.extension.extension.value[x]" />
      <fixedBoolean value="true" />
    </element>
    <element id="Patient.telecom:verified.system">
      <path value="Patient.telecom.system" />
      <patternCode value="phone" />
    </element>
    <element id="Patient.telecom:verified.use">
      <path value="Patient.telecom.use" />
      <patternCode value="mobile" />
    </element>
  </differential>
</StructureDefinition>