<StructureDefinition xmlns="http://hl7.org/fhir">
  <id value="Patient-verto" />
  <url value="http://verto.ca/fhir/StructureDefinition/Patient-verto" />
  <version value="1.0.0" />
  <name value="Patient" />
  <title value="Verto's Patient Profile" />
  <status value="active" />
  <experimental value="true" />
  <date value="2025-01-13" />
  <publisher value="Verto Health" />
  <description value="Patient Profile constrained by Verto's Digital Twin, based on the International Patient Summary (IPS)" />
  <fhirVersion value="5.0.0" />
  <kind value="resource" />
  <abstract value="false" />
  <type value="Patient" />
  <baseDefinition value="http://hl7.org/fhir/R5/StructureDefinition/Patient" />
  <derivation value="constraint" />
  <differential>
    <element id="Patient">
      <path value="Patient" />
      <short value="Verto's Patient Profile" />
      <definition value="Demographics and administrative information about a person receiving healthcare services in Verto's Digital Twin." />
    </element>
    <!-- Identifier -->
    <element id="Patient.identifier">
      <path value="Patient.identifier" />
      <short value="External ids from the source system of record" />
      <definition value="An identifier for this patient." />
      <min value="0" />
      <max value="*" />
      <type>
        <code value="Identifier" />
      </type>
      <mustSupport value="true" />
    </element>
    <!-- Name -->
    <element id="Patient.name">
      <path value="Patient.name" />
      <short value="A name associated with the patient" />
      <min value="0" />
      <max value="*" />
      <type>
        <code value="HumanName" />
        <profile value="http://verto.ca/fhir/StructureDefinition/HumanName-verto" />
      </type>
      <mustSupport value="true" />
    </element>
    <!-- Gender -->
    <element id="Patient.gender">
      <path value="Patient.gender" />
      <short value="male | female | other | unknown" />
      <definition value="Administrative Gender - the gender that the patient is considered to have for administration and record keeping purposes." />
      <min value="0" />
      <max value="1" />
      <type>
        <code value="code" />
      </type>
      <mustSupport value="true" />
      <binding>
        <strength value="required" />
        <valueSet value="http://hl7.org/fhir/ValueSet/administrative-gender" />
      </binding>
    </element>
    <!-- BirthDate -->
    <element id="Patient.birthDate">
      <path value="Patient.birthDate" />
      <short value="The date of birth for the patient" />
      <min value="0" />
      <max value="1" />
      <type>
        <code value="date" />
      </type>
      <mustSupport value="true" />
    </element>
    <!-- Deceased[x] -->
    <element id="Patient.deceased[x]">
      <path value="Patient.deceased[x]" />
      <short value="Indicates if the patient is deceased or not" />
      <min value="0" />
      <max value="1" />
      <type>
        <code value="boolean" />
      </type>
      <type>
        <code value="dateTime" />
      </type>
      <mustSupport value="true" />
    </element>
    <!-- Address -->
    <element id="Patient.address">
      <path value="Patient.address" />
      <short value="An address for the patient" />
      <!-- <comment value="Patient may have multiple addresses with different applicable periods."/> -->
      <min value="0" />
      <max value="*" />
      <type>
        <code value="Address" />
        <profile value="http://verto.ca/fhir/StructureDefinition/Verto's Address Profile" />
      </type>
      <mustSupport value="true" />
    </element>
    <!-- Marital Status -->
    <element id="Patient.maritalStatus">
      <path value="Patient.maritalStatus" />
      <short value="Marital (civil) status of a patient" />
      <definition value="This field contains a patient's most recent marital (civil) status." />
      <min value="0" />
      <max value="1" />
      <type>
        <code value="CodeableConcept" />
      </type>
      <mustSupport value="false" />
      <binding>
        <strength value="required" />
        <valueSet value="http://hl7.org/fhir/ValueSet/marital-status" />
      </binding>
    </element>
    <!-- Contact -->
    <element id="Patient.contact">
      <path value="Patient.contact" />
      <short value="Emergency contact information for the patient" />
      <definition value="A contact party (e.g. guardian, partner, friend) for the patient" />
      <min value="0" />
      <max value="*" />
      <type>
        <code value="BackboneElement" />
      </type>
      <mustSupport value="false" />
    </element>
    <element id="Patient.contact.name">
      <path value="Patient.contact.name" />
      <short value="Name of emergency contact" />
      <min value="0" />
      <max value="1" />
      <type>
        <code value="HumanName" />
        <profile value="http://verto.ca/fhir/StructureDefinition/HumanName-verto" />
      </type>
      <mustSupport value="false" />
    </element>
    <element id="Patient.contact.telecom">
      <path value="Patient.contact.telecom" />
      <short value="Contact details for emergency contact" />
      <min value="0" />
      <max value="*" />
      <type>
        <code value="ContactPoint" />
      </type>
      <mustSupport value="false" />
    </element>
    <element id="Patient.contact.address">
      <path value="Patient.contact.address" />
      <short value="Address for emergency contact" />
      <min value="0" />
      <max value="1" />
      <type>
        <code value="Address" />
        <profile value="http://verto.ca/fhir/StructureDefinition/Verto's Address Profile" />
      </type>
      <mustSupport value="false" />
    </element>
    <!-- Communication -->
    <element id="Patient.communication">
      <path value="Patient.communication" />
      <short value="A language which may be used to communicate with the patient" />
      <min value="0" />
      <max value="*" />
      <type>
        <code value="BackboneElement" />
      </type>
      <mustSupport value="false" />
    </element>
    <!-- Communication Language -->
    <element id="Patient.communication.language">
      <path value="Patient.communication.language" />
      <short value="The language which can be used to communicate with the patient" />
      <min value="1" />
      <max value="1" />
      <type>
        <code value="CodeableConcept" />
      </type>
      <mustSupport value="false" />
      <binding>
        <strength value="required" />
        <valueSet value="http://hl7.org/fhir/ValueSet/languages" />
      </binding>
    </element>
    <!-- General Practitioner -->
    <element id="Patient.generalPractitioner">
      <path value="Patient.generalPractitioner" />
      <short value="Patient's nominated primary care provider" />
      <definition value="Patient's nominated general practitioner or organization" />
      <min value="0" />
      <max value="*" />
      <type>
        <code value="Reference" />
        <targetProfile value="http://hl7.org/fhir/StructureDefinition/Organization" />
        <targetProfile value="http://hl7.org/fhir/StructureDefinition/Practitioner" />
        <targetProfile value="http://hl7.org/fhir/StructureDefinition/PractitionerRole" />
      </type>
      <mustSupport value="true" />
    </element>
  </differential>
</StructureDefinition>