<StructureDefinition xmlns="http://hl7.org/fhir">
  <id value="patient-ca-core" />
  <url value="http://fhir.infoway-inforoute.ca/ca-core/StructureDefinition/patient-ca-core" />
  <name value="PatientCACore" />
  <title value="Patient (CA-Core)" />
  <status value="draft" />
  <experimental value="false" />
  <description value="This profile applies constraints to the Patient resource for CA Core." />
  <fhirVersion value="4.0.1" />
  <kind value="resource" />
  <abstract value="false" />
  <type value="Patient" />
  <baseDefinition value="http://hl7.org/fhir/StructureDefinition/Patient" />
  <derivation value="constraint" />
  <differential>
    <element id="Patient.communication.extension:CommunicationBarrier">
      <path value="Patient.communication.extension:CommunicationBarrier" />
      <min value="0.0" />
      <max value="*" />
      <type>
        <code value="Extension" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="Patient">
      <path value="Patient" />
      <min value="0.0" />
      <max value="*" />
      <mustSupport value="false" />
    </element>
    <element id="Patient.active">
      <path value="Patient.active" />
      <min value="0.0" />
      <max value="1" />
      <type>
        <code value="boolean" />
      </type>
      <mustSupport value="false" />
    </element>
    <element id="Patient.address">
      <path value="Patient.address" />
      <min value="0.0" />
      <max value="*" />
      <type>
        <code value="Address" />
      </type>
      <mustSupport value="false" />
    </element>
    <element id="Patient.birthDate">
      <path value="Patient.birthDate" />
      <min value="1.0" />
      <max value="1" />
      <type>
        <code value="date" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="Patient.communication">
      <path value="Patient.communication" />
      <min value="0.0" />
      <max value="*" />
      <type>
        <code value="BackboneElement" />
      </type>
      <mustSupport value="false" />
    </element>
    <element id="Patient.communication.preferred">
      <path value="Patient.communication.preferred" />
      <min value="0.0" />
      <max value="1" />
      <type>
        <code value="boolean" />
      </type>
      <mustSupport value="false" />
    </element>
    <element id="Patient.contact">
      <path value="Patient.contact" />
      <min value="0.0" />
      <max value="*" />
      <type>
        <code value="BackboneElement" />
      </type>
      <mustSupport value="false" />
    </element>
    <element id="Patient.contact.address">
      <path value="Patient.contact.address" />
      <min value="0.0" />
      <max value="1" />
      <type>
        <code value="Address" />
      </type>
      <mustSupport value="false" />
    </element>
    <element id="Patient.contact.gender">
      <path value="Patient.contact.gender" />
      <min value="0.0" />
      <max value="1" />
      <type>
        <code value="code" />
      </type>
      <mustSupport value="false" />
      <binding>
        <strength value="required" />
      </binding>
    </element>
    <element id="Patient.contact.name">
      <path value="Patient.contact.name" />
      <min value="0.0" />
      <max value="1" />
      <type>
        <code value="HumanName" />
      </type>
      <mustSupport value="false" />
    </element>
    <element id="Patient.contact.period">
      <path value="Patient.contact.period" />
      <min value="0.0" />
      <max value="1" />
      <type>
        <code value="Period" />
      </type>
      <mustSupport value="false" />
    </element>
    <element id="Patient.contact.relationship">
      <path value="Patient.contact.relationship" />
      <min value="0.0" />
      <max value="*" />
      <type>
        <code value="CodeableConcept" />
      </type>
      <mustSupport value="false" />
      <binding>
        <strength value="extensible" />
      </binding>
    </element>
    <element id="Patient.contact.telecom">
      <path value="Patient.contact.telecom" />
      <min value="0.0" />
      <max value="*" />
      <type>
        <code value="ContactPoint" />
      </type>
      <mustSupport value="false" />
    </element>
    <element id="Patient.deceased[x]">
      <path value="Patient.deceased[x]" />
      <min value="0.0" />
      <max value="1" />
      <type>
        <code value="boolean" />
      </type>
      <mustSupport value="false" />
    </element>
    <element id="Patient.extension:genderIdentity">
      <path value="Patient.extension:genderIdentity" />
      <min value="0.0" />
      <max value="*" />
      <type>
        <code value="Extension" />
      </type>
      <mustSupport value="false" />
    </element>
    <element id="Patient.gender">
      <path value="Patient.gender" />
      <min value="0.0" />
      <max value="1" />
      <type>
        <code value="code" />
      </type>
      <mustSupport value="true" />
      <binding>
        <strength value="required" />
      </binding>
    </element>
    <element id="Patient.identifier">
      <path value="Patient.identifier" />
      <slicing>
        <discriminator>
          <type value="pattern" />
          <path value="type" />
        </discriminator>
        <rules value="open" />
      </slicing>
      <min value="0.0" />
      <max value="*" />
      <type>
        <code value="Identifier" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="Patient.identifier.extension:HCNVersionCodeerVersionCode">
      <path value="Patient.identifier.extension:HCNVersionCodeerVersionCode" />
      <min value="0.0" />
      <max value="*" />
      <type>
        <code value="Extension" />
      </type>
      <mustSupport value="false" />
    </element>
    <element id="Patient.identifier.extension:ReasonForNoHCN">
      <path value="Patient.identifier.extension:ReasonForNoHCN" />
      <min value="0.0" />
      <max value="*" />
      <type>
        <code value="Extension" />
      </type>
      <mustSupport value="false" />
    </element>
    <element id="Patient.identifier:HCN.extension:versionCode">
      <path value="Patient.identifier:HCN.extension:versionCode" />
      <min value="0.0" />
      <max value="1" />
      <type>
        <code value="Extension" />
      </type>
      <mustSupport value="false" />
    </element>
    <element id="Patient.identifier:MRN">
      <path value="Patient.identifier:MRN" />
      <min value="0.0" />
      <max value="*" />
      <type>
        <code value="Identifier" />
      </type>
      <mustSupport value="false" />
    </element>
    <element id="Patient.identifier:MRN.assigner(Organization)">
      <path value="Patient.identifier:MRN.assigner(Organization)" />
      <min value="0.0" />
      <max value="1" />
      <type>
        <code value="Reference" />
      </type>
      <mustSupport value="false" />
    </element>
    <element id="Patient.identifier:MRN.period">
      <path value="Patient.identifier:MRN.period" />
      <min value="0.0" />
      <max value="1" />
      <type>
        <code value="Period" />
      </type>
      <mustSupport value="false" />
    </element>
    <element id="Patient.identifier:MRN.system">
      <path value="Patient.identifier:MRN.system" />
      <min value="1.0" />
      <max value="1" />
      <type>
        <code value="uri" />
      </type>
      <mustSupport value="false" />
    </element>
    <element id="Patient.identifier:MRN.type">
      <path value="Patient.identifier:MRN.type" />
      <min value="1.0" />
      <max value="1" />
      <type>
        <code value="CodeableConcept" />
      </type>
      <mustSupport value="false" />
      <binding>
        <strength value="extensible" />
      </binding>
    </element>
    <element id="Patient.identifier:MRN.use">
      <path value="Patient.identifier:MRN.use" />
      <min value="0.0" />
      <max value="1" />
      <type>
        <code value="code" />
      </type>
      <mustSupport value="false" />
      <binding>
        <strength value="required" />
      </binding>
    </element>
    <element id="Patient.identifier:MRN.value">
      <path value="Patient.identifier:MRN.value" />
      <min value="1.0" />
      <max value="1" />
      <type>
        <code value="string" />
      </type>
      <mustSupport value="false" />
    </element>
    <element id="Patient.link">
      <path value="Patient.link" />
      <min value="0.0" />
      <max value="*" />
      <type>
        <code value="BackboneElement" />
      </type>
      <mustSupport value="false" />
    </element>
    <element id="Patient.link.type">
      <path value="Patient.link.type" />
      <min value="1.0" />
      <max value="1" />
      <type>
        <code value="code" />
      </type>
      <mustSupport value="false" />
      <binding>
        <strength value="required" />
      </binding>
    </element>
    <element id="Patient.maritalStatus">
      <path value="Patient.maritalStatus" />
      <min value="0.0" />
      <max value="1" />
      <type>
        <code value="CodeableConcept" />
      </type>
      <mustSupport value="false" />
      <binding>
        <strength value="extensible" />
      </binding>
    </element>
    <element id="Patient.multipleBirth[x]">
      <path value="Patient.multipleBirth[x]" />
      <min value="0.0" />
      <max value="1" />
      <type>
        <code value="boolean" />
      </type>
      <mustSupport value="false" />
    </element>
    <element id="Patient.name">
      <path value="Patient.name" />
      <min value="1.0" />
      <max value="*" />
      <type>
        <code value="HumanName" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="Patient.photo">
      <path value="Patient.photo" />
      <min value="0.0" />
      <max value="*" />
      <type>
        <code value="Attachment" />
      </type>
      <mustSupport value="false" />
    </element>
    <element id="Patient.telecom">
      <path value="Patient.telecom" />
      <min value="0.0" />
      <max value="*" />
      <type>
        <code value="ContactPoint" />
      </type>
      <mustSupport value="false" />
    </element>
    <element id="Patient.text">
      <path value="Patient.text" />
      <min value="0.0" />
      <max value="1" />
      <type>
        <code value="Narrative" />
      </type>
      <mustSupport value="false" />
    </element>
    <element id="Patient.address.extension:no-fixed-address">
      <path value="Patient.address.extension:no-fixed-address" />
      <min value="0.0" />
      <max value="*" />
      <type>
        <code value="Extension" />
      </type>
      <mustSupport value="false" />
    </element>
    <element id="Patient.address.extension:preferred">
      <path value="Patient.address.extension:preferred" />
      <min value="0.0" />
      <max value="1" />
      <type>
        <code value="Extension" />
      </type>
      <mustSupport value="false" />
    </element>
    <element id="Patient.extension:indigenous-identity">
      <path value="Patient.extension:indigenous-identity" />
      <min value="0.0" />
      <max value="*" />
      <type>
        <code value="Extension" />
      </type>
      <mustSupport value="false" />
    </element>
    <element id="Patient.extension:individual-pronouns">
      <path value="Patient.extension:individual-pronouns" />
      <min value="0.0" />
      <max value="*" />
      <type>
        <code value="Extension" />
      </type>
      <mustSupport value="false" />
    </element>
    <element id="Patient.extension:racialized-group">
      <path value="Patient.extension:racialized-group" />
      <min value="0.0" />
      <max value="*" />
      <type>
        <code value="Extension" />
      </type>
      <mustSupport value="false" />
    </element>
    <element id="Patient.deceased[x]:deceasedDateTime">
      <path value="Patient.deceased[x]:deceasedDateTime" />
      <min value="0.0" />
      <max value="1" />
      <type>
        <code value="Extension" />
      </type>
      <mustSupport value="false" />
    </element>
  </differential>
</StructureDefinition>