<StructureDefinition xmlns="http://hl7.org/fhir">
  <url value="https://fhir.synapxe.sg/StructureDefinition/profile-careteam" />
  <name value="CareTeam" />
  <status value="active" />
  <description value="Represents the enrollment of a patient in a care program, including participants, period, status, and managing organization." />
  <fhirVersion value="5.0.0" />
  <kind value="resource" />
  <abstract value="false" />
  <type value="CareTeam" />
  <baseDefinition value="http://hl7.org/fhir/StructureDefinition/CareTeam" />
  <derivation value="constraint" />
  <differential>
    <element id="CareTeam.extension:enrollment">
      <path value="CareTeam.extension" />
      <sliceName value="enrollment" />
      <max value="1" />
      <type>
        <code value="Extension" />
        <profile value="https://fhir.synapxe.sg/StructureDefinition/ext-enrollment" />
      </type>
    </element>
    <element id="CareTeam.identifier">
      <path value="CareTeam.identifier" />
      <min value="1" />
      <max value="1" />
      <type>
        <code value="Identifier" />
        <profile value="https://fhir.synapxe.sg/StructureDefinition/profile-identifier" />
      </type>
    </element>
    <element id="CareTeam.identifier.system">
      <path value="CareTeam.identifier.system" />
      <fixedUri value="https://fhir.synapxe.sg/NamingSystem/enrolment-id" />
    </element>
    <element id="CareTeam.status">
      <path value="CareTeam.status" />
      <min value="1" />
      <example>
        <label value="Active" />
        <valueCode value="active" />
      </example>
    </element>
    <element id="CareTeam.category">
      <path value="CareTeam.category" />
      <short value="programme name" />
      <definition value="programme name" />
      <min value="1" />
      <max value="1" />
      <type>
        <code value="CodeableConcept" />
        <profile value="https://fhir.synapxe.sg/StructureDefinition/profile-codeableconcept" />
      </type>
      <binding>
        <strength value="required" />
        <valueSet value="https://fhir.synapxe.sg/ValueSet/programme-name" />
      </binding>
    </element>
    <element id="CareTeam.category.extension">
      <path value="CareTeam.category.extension" />
      <max value="0" />
    </element>
    <element id="CareTeam.category.coding.system">
      <path value="CareTeam.category.coding.system" />
      <fixedUri value="https://fhir.synapxe.sg/CodeSystem/programme-name" />
    </element>
    <element id="CareTeam.category.coding.code">
      <path value="CareTeam.category.coding.code" />
      <example>
        <label value="SGH Nurse Navigator" />
        <valueCode value="SGHNurseNavigator" />
      </example>
    </element>
    <element id="CareTeam.name">
      <path value="CareTeam.name" />
      <max value="0" />
    </element>
    <element id="CareTeam.subject">
      <path value="CareTeam.subject" />
      <min value="1" />
      <type>
        <code value="Reference" />
        <profile value="https://fhir.synapxe.sg/StructureDefinition/profile-reference-patient" />
        <targetProfile value="https://fhir.synapxe.sg/StructureDefinition/profile-patient" />
      </type>
    </element>
    <element id="CareTeam.period.id">
      <path value="CareTeam.period.id" />
      <max value="0" />
    </element>
    <element id="CareTeam.period.extension">
      <path value="CareTeam.period.extension" />
      <max value="0" />
    </element>
    <element id="CareTeam.period.start">
      <path value="CareTeam.period.start" />
      <min value="1" />
    </element>
    <element id="CareTeam.period.end">
      <path value="CareTeam.period.end" />
      <min value="1" />
    </element>
    <element id="CareTeam.participant">
      <path value="CareTeam.participant" />
      <short value="care manager of this patient" />
      <definition value="care manager of this patient" />
    </element>
    <element id="CareTeam.participant.id">
      <path value="CareTeam.participant.id" />
      <max value="0" />
    </element>
    <element id="CareTeam.participant.extension">
      <path value="CareTeam.participant.extension" />
      <max value="0" />
    </element>
    <element id="CareTeam.participant.modifierExtension">
      <path value="CareTeam.participant.modifierExtension" />
      <max value="0" />
    </element>
    <element id="CareTeam.participant.role">
      <path value="CareTeam.participant.role" />
      <max value="0" />
    </element>
    <element id="CareTeam.participant.role.id">
      <path value="CareTeam.participant.role.id" />
      <max value="0" />
    </element>
    <element id="CareTeam.participant.role.extension">
      <path value="CareTeam.participant.role.extension" />
      <max value="0" />
    </element>
    <element id="CareTeam.participant.role.coding">
      <path value="CareTeam.participant.role.coding" />
      <min value="1" />
      <max value="1" />
    </element>
    <element id="CareTeam.participant.role.coding.id">
      <path value="CareTeam.participant.role.coding.id" />
      <max value="0" />
    </element>
    <element id="CareTeam.participant.role.coding.extension">
      <path value="CareTeam.participant.role.coding.extension" />
      <max value="0" />
    </element>
    <element id="CareTeam.participant.role.coding.system">
      <path value="CareTeam.participant.role.coding.system" />
      <min value="1" />
    </element>
    <element id="CareTeam.participant.role.coding.code">
      <path value="CareTeam.participant.role.coding.code" />
      <min value="1" />
    </element>
    <element id="CareTeam.participant.role.coding.display">
      <path value="CareTeam.participant.role.coding.display" />
      <min value="1" />
    </element>
    <element id="CareTeam.participant.role.coding.userSelected">
      <path value="CareTeam.participant.role.coding.userSelected" />
      <max value="0" />
    </element>
    <element id="CareTeam.participant.role.text">
      <path value="CareTeam.participant.role.text" />
      <max value="0" />
    </element>
    <element id="CareTeam.participant.member">
      <path value="CareTeam.participant.member" />
      <short value="the care manager for this patient and the organization where the practioner performs the roles associated" />
      <definition value="the care manager for this patient and the organization where the practioner performs the roles associated" />
      <min value="1" />
      <type>
        <code value="Reference" />
        <targetProfile value="https://fhir.synapxe.sg/StructureDefinition/profile-practitionerrole" />
        <aggregation value="contained" />
      </type>
    </element>
    <element id="CareTeam.participant.member.id">
      <path value="CareTeam.participant.member.id" />
      <max value="0" />
    </element>
    <element id="CareTeam.participant.member.extension">
      <path value="CareTeam.participant.member.extension" />
      <max value="0" />
    </element>
    <element id="CareTeam.participant.member.type">
      <path value="CareTeam.participant.member.type" />
      <max value="0" />
    </element>
    <element id="CareTeam.participant.member.identifier">
      <path value="CareTeam.participant.member.identifier" />
      <max value="0" />
    </element>
    <element id="CareTeam.participant.member.display">
      <path value="CareTeam.participant.member.display" />
      <max value="0" />
    </element>
    <element id="CareTeam.participant.onBehalfOf">
      <path value="CareTeam.participant.onBehalfOf" />
      <max value="0" />
    </element>
    <element id="CareTeam.participant.coverage[x]">
      <path value="CareTeam.participant.coverage[x]" />
      <max value="0" />
    </element>
    <element id="CareTeam.reason">
      <path value="CareTeam.reason" />
      <slicing>
        <discriminator>
          <type value="value" />
          <path value="$this" />
        </discriminator>
        <rules value="open" />
      </slicing>
    </element>
    <element id="CareTeam.reason.id">
      <path value="CareTeam.reason.id" />
      <max value="0" />
    </element>
    <element id="CareTeam.reason.extension">
      <path value="CareTeam.reason.extension" />
      <max value="0" />
    </element>
    <element id="CareTeam.reason.concept">
      <path value="CareTeam.reason.concept" />
      <min value="1" />
      <type>
        <code value="CodeableConcept" />
        <profile value="https://fhir.synapxe.sg/StructureDefinition/profile-codeableconcept" />
      </type>
    </element>
    <element id="CareTeam.reason.concept.extension">
      <path value="CareTeam.reason.concept.extension" />
      <max value="0" />
    </element>
    <element id="CareTeam.reason.reference">
      <path value="CareTeam.reason.reference" />
      <max value="0" />
    </element>
    <element id="CareTeam.reason:reasonForEnrolment">
      <path value="CareTeam.reason" />
      <sliceName value="reasonForEnrolment" />
      <short value="Reason for the programme enrolment" />
      <definition value="Reason for the programme enrolment" />
      <max value="1" />
    </element>
    <element id="CareTeam.reason:reasonForEnrolment.id">
      <path value="CareTeam.reason.id" />
      <max value="0" />
    </element>
    <element id="CareTeam.reason:reasonForEnrolment.extension">
      <path value="CareTeam.reason.extension" />
      <max value="0" />
    </element>
    <element id="CareTeam.reason:reasonForEnrolment.concept">
      <path value="CareTeam.reason.concept" />
      <min value="1" />
    </element>
    <element id="CareTeam.reason:reasonForEnrolment.concept.id">
      <path value="CareTeam.reason.concept.id" />
      <max value="0" />
    </element>
    <element id="CareTeam.reason:reasonForEnrolment.concept.extension">
      <path value="CareTeam.reason.concept.extension" />
      <max value="0" />
    </element>
    <element id="CareTeam.reason:reasonForEnrolment.concept.coding">
      <path value="CareTeam.reason.concept.coding" />
      <min value="1" />
      <max value="1" />
    </element>
    <element id="CareTeam.reason:reasonForEnrolment.concept.coding.id">
      <path value="CareTeam.reason.concept.coding.id" />
      <max value="0" />
    </element>
    <element id="CareTeam.reason:reasonForEnrolment.concept.coding.extension">
      <path value="CareTeam.reason.concept.coding.extension" />
      <max value="0" />
    </element>
    <element id="CareTeam.reason:reasonForEnrolment.concept.coding.system">
      <path value="CareTeam.reason.concept.coding.system" />
      <min value="1" />
      <fixedUri value="https://fhir.synapxe.sg/CodeSystem/reasonForEnrolment" />
    </element>
    <element id="CareTeam.reason:reasonForEnrolment.concept.coding.code">
      <path value="CareTeam.reason.concept.coding.code" />
      <min value="1" />
      <binding>
        <strength value="required" />
        <valueSet value="https://fhir.synapxe.sg/ValueSet/reasonForEnrolment" />
      </binding>
    </element>
    <element id="CareTeam.reason:reasonForEnrolment.concept.coding.display">
      <path value="CareTeam.reason.concept.coding.display" />
      <min value="1" />
    </element>
    <element id="CareTeam.reason:reasonForEnrolment.concept.coding.userSelected">
      <path value="CareTeam.reason.concept.coding.userSelected" />
      <max value="0" />
    </element>
    <element id="CareTeam.reason:reasonForEnrolment.concept.text">
      <path value="CareTeam.reason.concept.text" />
      <max value="0" />
    </element>
    <element id="CareTeam.reason:reasonForEnrolment.reference">
      <path value="CareTeam.reason.reference" />
      <max value="0" />
    </element>
    <element id="CareTeam.reason:reasonForClosure">
      <path value="CareTeam.reason" />
      <sliceName value="reasonForClosure" />
      <max value="1" />
    </element>
    <element id="CareTeam.reason:reasonForClosure.id">
      <path value="CareTeam.reason.id" />
      <max value="0" />
    </element>
    <element id="CareTeam.reason:reasonForClosure.extension">
      <path value="CareTeam.reason.extension" />
      <max value="0" />
    </element>
    <element id="CareTeam.reason:reasonForClosure.concept">
      <path value="CareTeam.reason.concept" />
      <min value="1" />
    </element>
    <element id="CareTeam.reason:reasonForClosure.concept.id">
      <path value="CareTeam.reason.concept.id" />
      <max value="0" />
    </element>
    <element id="CareTeam.reason:reasonForClosure.concept.extension">
      <path value="CareTeam.reason.concept.extension" />
      <max value="0" />
    </element>
    <element id="CareTeam.reason:reasonForClosure.concept.coding">
      <path value="CareTeam.reason.concept.coding" />
      <min value="1" />
      <max value="1" />
    </element>
    <element id="CareTeam.reason:reasonForClosure.concept.coding.id">
      <path value="CareTeam.reason.concept.coding.id" />
      <max value="0" />
    </element>
    <element id="CareTeam.reason:reasonForClosure.concept.coding.extension">
      <path value="CareTeam.reason.concept.coding.extension" />
      <max value="0" />
    </element>
    <element id="CareTeam.reason:reasonForClosure.concept.coding.system">
      <path value="CareTeam.reason.concept.coding.system" />
      <min value="1" />
      <fixedUri value="https://fhir.synapxe.sg/CodeSystem/reasonForClosure" />
    </element>
    <element id="CareTeam.reason:reasonForClosure.concept.coding.code">
      <path value="CareTeam.reason.concept.coding.code" />
      <min value="1" />
      <binding>
        <strength value="required" />
        <valueSet value="https://fhir.synapxe.sg/ValueSet/reasonForClosure" />
      </binding>
    </element>
    <element id="CareTeam.reason:reasonForClosure.concept.coding.display">
      <path value="CareTeam.reason.concept.coding.display" />
      <min value="1" />
    </element>
    <element id="CareTeam.reason:reasonForClosure.concept.coding.userSelected">
      <path value="CareTeam.reason.concept.coding.userSelected" />
      <max value="0" />
    </element>
    <element id="CareTeam.reason:reasonForClosure.concept.text">
      <path value="CareTeam.reason.concept.text" />
      <max value="0" />
    </element>
    <element id="CareTeam.reason:reasonForClosure.reference">
      <path value="CareTeam.reason.reference" />
      <max value="0" />
    </element>
    <element id="CareTeam.managingOrganization">
      <path value="CareTeam.managingOrganization" />
      <min value="1" />
      <max value="1" />
      <type>
        <code value="Reference" />
        <profile value="https://fhir.synapxe.sg/StructureDefinition/profile-reference-organization" />
      </type>
    </element>
    <element id="CareTeam.managingOrganization.display">
      <path value="CareTeam.managingOrganization.display" />
      <max value="0" />
    </element>
    <element id="CareTeam.telecom">
      <path value="CareTeam.telecom" />
      <max value="0" />
    </element>
    <element id="CareTeam.note.id">
      <path value="CareTeam.note.id" />
      <max value="0" />
    </element>
    <element id="CareTeam.note.extension">
      <path value="CareTeam.note.extension" />
      <max value="0" />
    </element>
    <element id="CareTeam.note.author[x]">
      <path value="CareTeam.note.author[x]" />
      <max value="0" />
    </element>
    <element id="CareTeam.note.time">
      <path value="CareTeam.note.time" />
      <max value="0" />
    </element>
  </differential>
</StructureDefinition>