<StructureDefinition xmlns="http://hl7.org/fhir">
  <url value="http://fhir.synapxe.sg/StructureDefinition/profile-patient" />
  <name value="Patient" />
  <status value="active" />
  <description value="This resource defines the patient involved in the remote clinical monitoring. Details like patient's name, contacts, gender, birth date, country code and preferred languages will be used. The institution (i.e AMK Polyclinic) that manages the remote clinical monitoring for the patient and the group organization (i.e National Healthcare Group Polyclinics) that owns the patient record will also be stored." />
  <fhirVersion value="5.0.0" />
  <kind value="resource" />
  <abstract value="false" />
  <type value="Patient" />
  <baseDefinition value="http://hl7.org/fhir/StructureDefinition/Patient" />
  <derivation value="constraint" />
  <differential>
    <element id="Patient.identifier">
      <path value="Patient.identifier" />
      <min value="1" />
      <max value="1" />
    </element>
    <element id="Patient.identifier.use">
      <path value="Patient.identifier.use" />
      <max value="0" />
    </element>
    <element id="Patient.identifier.type">
      <path value="Patient.identifier.type" />
      <max value="0" />
    </element>
    <element id="Patient.identifier.type.coding">
      <path value="Patient.identifier.type.coding" />
      <min value="1" />
      <max value="1" />
    </element>
    <element id="Patient.identifier.type.coding.system">
      <path value="Patient.identifier.type.coding.system" />
      <max value="0" />
    </element>
    <element id="Patient.identifier.type.coding.version">
      <path value="Patient.identifier.type.coding.version" />
      <max value="0" />
    </element>
    <element id="Patient.identifier.type.coding.code">
      <path value="Patient.identifier.type.coding.code" />
      <min value="1" />
    </element>
    <element id="Patient.identifier.type.coding.display">
      <path value="Patient.identifier.type.coding.display" />
      <max value="0" />
    </element>
    <element id="Patient.identifier.type.coding.userSelected">
      <path value="Patient.identifier.type.coding.userSelected" />
      <max value="0" />
    </element>
    <element id="Patient.identifier.type.text">
      <path value="Patient.identifier.type.text" />
      <max value="0" />
    </element>
    <element id="Patient.identifier.system">
      <path value="Patient.identifier.system" />
      <min value="1" />
      <example>
        <label value="Identifier FIN" />
        <valueUri value="http://fhir.synapxe.sg/NamingSystem/fin" />
      </example>
    </element>
    <element id="Patient.identifier.value">
      <path value="Patient.identifier.value" />
      <min value="1" />
      <constraint>
        <key value="empty-value-validation" />
        <severity value="error" />
        <human value="patient identification value cannot be empty" />
        <expression value="$this.length() &gt; 0" />
      </constraint>
    </element>
    <element id="Patient.identifier.period">
      <path value="Patient.identifier.period" />
      <max value="0" />
    </element>
    <element id="Patient.identifier.assigner">
      <path value="Patient.identifier.assigner" />
      <max value="0" />
    </element>
    <element id="Patient.active">
      <path value="Patient.active" />
      <min value="1" />
    </element>
    <element id="Patient.name">
      <path value="Patient.name" />
      <min value="1" />
      <max value="1" />
    </element>
    <element id="Patient.name.use">
      <path value="Patient.name.use" />
      <max value="0" />
    </element>
    <element id="Patient.name.text">
      <path value="Patient.name.text" />
      <min value="1" />
    </element>
    <element id="Patient.name.family">
      <path value="Patient.name.family" />
      <max value="0" />
    </element>
    <element id="Patient.name.given">
      <path value="Patient.name.given" />
      <max value="0" />
    </element>
    <element id="Patient.name.prefix">
      <path value="Patient.name.prefix" />
      <max value="0" />
    </element>
    <element id="Patient.name.suffix">
      <path value="Patient.name.suffix" />
      <max value="0" />
    </element>
    <element id="Patient.name.period">
      <path value="Patient.name.period" />
      <max value="0" />
    </element>
    <element id="Patient.telecom">
      <path value="Patient.telecom" />
      <short value="phone | email" />
      <min value="1" />
    </element>
    <element id="Patient.telecom.system">
      <path value="Patient.telecom.system" />
      <min value="1" />
    </element>
    <element id="Patient.telecom.value">
      <path value="Patient.telecom.value" />
      <min value="1" />
    </element>
    <element id="Patient.telecom.use">
      <path value="Patient.telecom.use" />
      <binding>
        <strength value="required" />
        <description value="Use of contact point in RCM" />
        <valueSet value="http://fhir.synapxe.sg/ValueSet/rcm-patient-contact-types" />
      </binding>
    </element>
    <element id="Patient.telecom.rank">
      <path value="Patient.telecom.rank" />
      <max value="0" />
    </element>
    <element id="Patient.telecom.period">
      <path value="Patient.telecom.period" />
      <max value="0" />
    </element>
    <element id="Patient.gender">
      <path value="Patient.gender" />
      <min value="1" />
    </element>
    <element id="Patient.birthDate">
      <path value="Patient.birthDate" />
      <min value="1" />
    </element>
    <element id="Patient.deceased[x]">
      <path value="Patient.deceased[x]" />
      <max value="0" />
    </element>
    <element id="Patient.address">
      <path value="Patient.address" />
      <min value="1" />
    </element>
    <element id="Patient.address.use">
      <path value="Patient.address.use" />
      <max value="0" />
    </element>
    <element id="Patient.address.type">
      <path value="Patient.address.type" />
      <max value="0" />
    </element>
    <element id="Patient.address.text">
      <path value="Patient.address.text" />
      <max value="0" />
    </element>
    <element id="Patient.address.line">
      <path value="Patient.address.line" />
      <max value="0" />
    </element>
    <element id="Patient.address.city">
      <path value="Patient.address.city" />
      <max value="0" />
    </element>
    <element id="Patient.address.district">
      <path value="Patient.address.district" />
      <max value="0" />
    </element>
    <element id="Patient.address.state">
      <path value="Patient.address.state" />
      <max value="0" />
    </element>
    <element id="Patient.address.postalCode">
      <path value="Patient.address.postalCode" />
      <max value="0" />
    </element>
    <element id="Patient.address.country">
      <path value="Patient.address.country" />
      <min value="1" />
    </element>
    <element id="Patient.address.period">
      <path value="Patient.address.period" />
      <max value="0" />
    </element>
    <element id="Patient.maritalStatus">
      <path value="Patient.maritalStatus" />
      <max value="0" />
    </element>
    <element id="Patient.multipleBirth[x]">
      <path value="Patient.multipleBirth[x]" />
      <max value="0" />
    </element>
    <element id="Patient.photo">
      <path value="Patient.photo" />
      <max value="1" />
    </element>
    <element id="Patient.contact">
      <path value="Patient.contact" />
      <max value="0" />
    </element>
    <element id="Patient.communication">
      <path value="Patient.communication" />
      <min value="1" />
    </element>
    <element id="Patient.communication.language">
      <path value="Patient.communication.language" />
      <binding>
        <strength value="required" />
        <description value="IETF language tag for a human language used in RCM" />
        <valueSet value="http://fhir.synapxe.sg/ValueSet/rcm-language" />
      </binding>
    </element>
    <element id="Patient.communication.language.coding">
      <path value="Patient.communication.language.coding" />
      <min value="1" />
      <max value="1" />
    </element>
    <element id="Patient.communication.language.coding.system">
      <path value="Patient.communication.language.coding.system" />
      <min value="1" />
      <fixedUri value="urn:ietf:bcp:47" />
    </element>
    <element id="Patient.communication.language.coding.version">
      <path value="Patient.communication.language.coding.version" />
      <max value="0" />
    </element>
    <element id="Patient.communication.language.coding.code">
      <path value="Patient.communication.language.coding.code" />
      <min value="1" />
    </element>
    <element id="Patient.communication.language.coding.display">
      <path value="Patient.communication.language.coding.display" />
      <max value="0" />
    </element>
    <element id="Patient.communication.language.coding.userSelected">
      <path value="Patient.communication.language.coding.userSelected" />
      <max value="0" />
    </element>
    <element id="Patient.communication.language.text">
      <path value="Patient.communication.language.text" />
      <max value="0" />
    </element>
    <element id="Patient.communication.preferred">
      <path value="Patient.communication.preferred" />
      <max value="0" />
    </element>
    <element id="Patient.generalPractitioner">
      <path value="Patient.generalPractitioner" />
      <short value="The institution that manage the remote care monitoring for the patient." />
      <definition value="The institution that manage the remote care monitoring for the patient. For example, Ang Mo Kio Polyclinic" />
      <min value="1" />
      <max value="1" />
      <type>
        <code value="Reference" />
        <targetProfile value="http://hl7.org/fhir/StructureDefinition/Organization" />
      </type>
    </element>
    <element id="Patient.generalPractitioner.reference">
      <path value="Patient.generalPractitioner.reference" />
      <min value="1" />
    </element>
    <element id="Patient.generalPractitioner.type">
      <path value="Patient.generalPractitioner.type" />
      <max value="0" />
    </element>
    <element id="Patient.generalPractitioner.identifier">
      <path value="Patient.generalPractitioner.identifier" />
      <max value="0" />
    </element>
    <element id="Patient.generalPractitioner.display">
      <path value="Patient.generalPractitioner.display" />
      <max value="0" />
    </element>
    <element id="Patient.managingOrganization">
      <path value="Patient.managingOrganization" />
      <short value="The group organization that owns the patient record" />
      <definition value="The group organization that owns the patient record. For example, National Healthcare Group Polyclinics" />
      <min value="1" />
    </element>
    <element id="Patient.managingOrganization.reference">
      <path value="Patient.managingOrganization.reference" />
      <min value="1" />
    </element>
    <element id="Patient.managingOrganization.type">
      <path value="Patient.managingOrganization.type" />
      <max value="0" />
    </element>
    <element id="Patient.managingOrganization.identifier">
      <path value="Patient.managingOrganization.identifier" />
      <max value="0" />
    </element>
    <element id="Patient.managingOrganization.display">
      <path value="Patient.managingOrganization.display" />
      <max value="0" />
    </element>
    <element id="Patient.link">
      <path value="Patient.link" />
      <max value="0" />
    </element>
  </differential>
</StructureDefinition>