<StructureDefinition xmlns="http://hl7.org/fhir">
  <url value="https://fhir.synapxe.sg/StructureDefinition/profile-referral" />
  <name value="Referral" />
  <status value="active" />
  <fhirVersion value="5.0.0" />
  <kind value="resource" />
  <abstract value="false" />
  <type value="ServiceRequest" />
  <baseDefinition value="http://hl7.org/fhir/StructureDefinition/ServiceRequest" />
  <derivation value="constraint" />
  <differential>
    <element id="ServiceRequest.identifier">
      <path value="ServiceRequest.identifier" />
      <min value="1" />
      <max value="1" />
      <type>
        <code value="Identifier" />
        <profile value="https://fhir.synapxe.sg/StructureDefinition/profile-identifier" />
      </type>
    </element>
    <element id="ServiceRequest.identifier.system">
      <path value="ServiceRequest.identifier.system" />
      <fixedUri value="https://fhir.synapxe.sg/NamingSystem/referral-id" />
    </element>
    <element id="ServiceRequest.instantiatesCanonical">
      <path value="ServiceRequest.instantiatesCanonical" />
      <max value="0" />
    </element>
    <element id="ServiceRequest.instantiatesUri">
      <path value="ServiceRequest.instantiatesUri" />
      <max value="0" />
    </element>
    <element id="ServiceRequest.basedOn">
      <path value="ServiceRequest.basedOn" />
      <max value="0" />
    </element>
    <element id="ServiceRequest.replaces">
      <path value="ServiceRequest.replaces" />
      <max value="0" />
    </element>
    <element id="ServiceRequest.requisition">
      <path value="ServiceRequest.requisition" />
      <max value="0" />
    </element>
    <element id="ServiceRequest.status">
      <path value="ServiceRequest.status" />
      <patternCode value="completed" />
    </element>
    <element id="ServiceRequest.intent">
      <path value="ServiceRequest.intent" />
      <patternCode value="order" />
    </element>
    <element id="ServiceRequest.category">
      <path value="ServiceRequest.category" />
      <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/referral-type" />
      </binding>
    </element>
    <element id="ServiceRequest.priority">
      <path value="ServiceRequest.priority" />
      <patternCode value="routine" />
    </element>
    <element id="ServiceRequest.doNotPerform">
      <path value="ServiceRequest.doNotPerform" />
      <max value="0" />
    </element>
    <element id="ServiceRequest.code">
      <path value="ServiceRequest.code" />
      <max value="0" />
    </element>
    <element id="ServiceRequest.code.id">
      <path value="ServiceRequest.code.id" />
      <max value="0" />
    </element>
    <element id="ServiceRequest.code.extension">
      <path value="ServiceRequest.code.extension" />
      <max value="0" />
    </element>
    <element id="ServiceRequest.code.concept">
      <path value="ServiceRequest.code.concept" />
      <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/referral-type" />
      </binding>
    </element>
    <element id="ServiceRequest.code.concept.extension">
      <path value="ServiceRequest.code.concept.extension" />
      <max value="0" />
    </element>
    <element id="ServiceRequest.code.concept.coding.system">
      <path value="ServiceRequest.code.concept.coding.system" />
      <fixedUri value="https://fhir.synapxe.sg/CodeSystem/referral-type" />
    </element>
    <element id="ServiceRequest.orderDetail">
      <path value="ServiceRequest.orderDetail" />
      <max value="0" />
    </element>
    <element id="ServiceRequest.quantity[x]">
      <path value="ServiceRequest.quantity[x]" />
      <max value="0" />
    </element>
    <element id="ServiceRequest.subject">
      <path value="ServiceRequest.subject" />
      <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="ServiceRequest.subject.display">
      <path value="ServiceRequest.subject.display" />
      <max value="0" />
    </element>
    <element id="ServiceRequest.focus">
      <path value="ServiceRequest.focus" />
      <max value="0" />
    </element>
    <element id="ServiceRequest.encounter">
      <path value="ServiceRequest.encounter" />
      <max value="0" />
      <type>
        <code value="Reference" />
        <targetProfile value="https://fhir.synapxe.sg/StructureDefinition/profile-encounter" />
      </type>
    </element>
    <element id="ServiceRequest.occurrence[x]">
      <path value="ServiceRequest.occurrence[x]" />
      <max value="0" />
      <type>
        <code value="dateTime" />
      </type>
    </element>
    <element id="ServiceRequest.asNeeded[x]">
      <path value="ServiceRequest.asNeeded[x]" />
      <max value="0" />
    </element>
    <element id="ServiceRequest.requester">
      <path value="ServiceRequest.requester" />
      <min value="1" />
      <type>
        <code value="Reference" />
        <targetProfile value="https://fhir.synapxe.sg/StructureDefinition/profile-practitionerrole" />
        <targetProfile value="https://fhir.synapxe.sg/StructureDefinition/profile-practitioner" />
      </type>
    </element>
    <element id="ServiceRequest.requester.id">
      <path value="ServiceRequest.requester.id" />
      <max value="0" />
    </element>
    <element id="ServiceRequest.requester.extension">
      <path value="ServiceRequest.requester.extension" />
      <max value="0" />
    </element>
    <element id="ServiceRequest.requester.type">
      <path value="ServiceRequest.requester.type" />
      <fixedUri value="Practitioner" />
    </element>
    <element id="ServiceRequest.requester.identifier.id">
      <path value="ServiceRequest.requester.identifier.id" />
      <max value="0" />
    </element>
    <element id="ServiceRequest.requester.identifier.extension">
      <path value="ServiceRequest.requester.identifier.extension" />
      <max value="0" />
    </element>
    <element id="ServiceRequest.requester.identifier.use">
      <path value="ServiceRequest.requester.identifier.use" />
      <max value="0" />
    </element>
    <element id="ServiceRequest.requester.identifier.type">
      <path value="ServiceRequest.requester.identifier.type" />
      <max value="0" />
    </element>
    <element id="ServiceRequest.requester.identifier.system">
      <path value="ServiceRequest.requester.identifier.system" />
      <min value="1" />
      <fixedUri value="https://fhir.synapxe.sg/NamingSystem/mcr" />
    </element>
    <element id="ServiceRequest.requester.identifier.value">
      <path value="ServiceRequest.requester.identifier.value" />
      <min value="1" />
    </element>
    <element id="ServiceRequest.requester.identifier.period">
      <path value="ServiceRequest.requester.identifier.period" />
      <max value="0" />
    </element>
    <element id="ServiceRequest.requester.identifier.assigner">
      <path value="ServiceRequest.requester.identifier.assigner" />
      <max value="0" />
    </element>
    <element id="ServiceRequest.requester.display">
      <path value="ServiceRequest.requester.display" />
      <max value="0" />
    </element>
    <element id="ServiceRequest.performerType">
      <path value="ServiceRequest.performerType" />
      <max value="0" />
    </element>
    <element id="ServiceRequest.performer">
      <path value="ServiceRequest.performer" />
      <max value="0" />
      <type>
        <code value="Reference" />
        <targetProfile value="https://fhir.synapxe.sg/StructureDefinition/profile-practitioner" />
      </type>
    </element>
    <element id="ServiceRequest.performer.id">
      <path value="ServiceRequest.performer.id" />
      <max value="0" />
    </element>
    <element id="ServiceRequest.performer.extension">
      <path value="ServiceRequest.performer.extension" />
      <max value="0" />
    </element>
    <element id="ServiceRequest.performer.reference">
      <path value="ServiceRequest.performer.reference" />
      <max value="0" />
    </element>
    <element id="ServiceRequest.performer.type">
      <path value="ServiceRequest.performer.type" />
      <min value="1" />
      <fixedUri value="Practitioner" />
    </element>
    <element id="ServiceRequest.performer.identifier">
      <path value="ServiceRequest.performer.identifier" />
      <min value="1" />
    </element>
    <element id="ServiceRequest.performer.identifier.id">
      <path value="ServiceRequest.performer.identifier.id" />
      <max value="0" />
    </element>
    <element id="ServiceRequest.performer.identifier.extension">
      <path value="ServiceRequest.performer.identifier.extension" />
      <max value="0" />
    </element>
    <element id="ServiceRequest.performer.identifier.use">
      <path value="ServiceRequest.performer.identifier.use" />
      <max value="0" />
    </element>
    <element id="ServiceRequest.performer.identifier.type">
      <path value="ServiceRequest.performer.identifier.type" />
      <max value="0" />
    </element>
    <element id="ServiceRequest.performer.identifier.system">
      <path value="ServiceRequest.performer.identifier.system" />
      <min value="1" />
      <fixedUri value="https://fhir.synapxe.sg/NamingSystem/mcr" />
    </element>
    <element id="ServiceRequest.performer.identifier.value">
      <path value="ServiceRequest.performer.identifier.value" />
      <min value="1" />
    </element>
    <element id="ServiceRequest.performer.identifier.period">
      <path value="ServiceRequest.performer.identifier.period" />
      <max value="0" />
    </element>
    <element id="ServiceRequest.performer.identifier.assigner">
      <path value="ServiceRequest.performer.identifier.assigner" />
      <max value="0" />
    </element>
    <element id="ServiceRequest.performer.display">
      <path value="ServiceRequest.performer.display" />
      <max value="0" />
    </element>
    <element id="ServiceRequest.location">
      <path value="ServiceRequest.location" />
      <max value="1" />
    </element>
    <element id="ServiceRequest.location.id">
      <path value="ServiceRequest.location.id" />
      <max value="0" />
    </element>
    <element id="ServiceRequest.location.extension">
      <path value="ServiceRequest.location.extension" />
      <max value="0" />
    </element>
    <element id="ServiceRequest.location.concept">
      <path value="ServiceRequest.location.concept" />
      <short value="Concept - reference to a terminology or just  text" />
      <definition value="A concept that may be defined by a formal reference to a terminology or ontology or may be provided by text." />
      <min value="1" />
    </element>
    <element id="ServiceRequest.location.concept.extension">
      <path value="ServiceRequest.location.concept.extension" />
      <max value="0" />
    </element>
    <element id="ServiceRequest.location.concept.coding">
      <path value="ServiceRequest.location.concept.coding" />
      <max value="0" />
    </element>
    <element id="ServiceRequest.location.concept.text">
      <path value="ServiceRequest.location.concept.text" />
      <min value="1" />
    </element>
    <element id="ServiceRequest.location.reference">
      <path value="ServiceRequest.location.reference" />
      <max value="0" />
    </element>
    <element id="ServiceRequest.reason.id">
      <path value="ServiceRequest.reason.id" />
      <max value="0" />
    </element>
    <element id="ServiceRequest.reason.extension">
      <path value="ServiceRequest.reason.extension" />
      <max value="0" />
    </element>
    <element id="ServiceRequest.reason.concept">
      <path value="ServiceRequest.reason.concept" />
      <short value="Concept - reference to a terminology or just  text" />
      <definition value="A concept that may be defined by a formal reference to a terminology or ontology or may be provided by text." />
    </element>
    <element id="ServiceRequest.reason.concept.extension">
      <path value="ServiceRequest.reason.concept.extension" />
      <max value="0" />
    </element>
    <element id="ServiceRequest.reason.concept.coding">
      <path value="ServiceRequest.reason.concept.coding" />
      <max value="0" />
    </element>
    <element id="ServiceRequest.reason.concept.text">
      <path value="ServiceRequest.reason.concept.text" />
      <min value="1" />
    </element>
    <element id="ServiceRequest.reason.reference">
      <path value="ServiceRequest.reason.reference" />
      <max value="0" />
    </element>
    <element id="ServiceRequest.insurance">
      <path value="ServiceRequest.insurance" />
      <max value="0" />
    </element>
    <element id="ServiceRequest.supportingInfo">
      <path value="ServiceRequest.supportingInfo" />
      <max value="0" />
    </element>
    <element id="ServiceRequest.specimen">
      <path value="ServiceRequest.specimen" />
      <max value="0" />
    </element>
    <element id="ServiceRequest.bodySite">
      <path value="ServiceRequest.bodySite" />
      <max value="0" />
    </element>
    <element id="ServiceRequest.bodySite.id">
      <path value="ServiceRequest.bodySite.id" />
      <max value="0" />
    </element>
    <element id="ServiceRequest.bodySite.extension">
      <path value="ServiceRequest.bodySite.extension" />
      <max value="0" />
    </element>
    <element id="ServiceRequest.bodySite.coding">
      <path value="ServiceRequest.bodySite.coding" />
      <min value="1" />
      <max value="1" />
    </element>
    <element id="ServiceRequest.bodySite.coding.id">
      <path value="ServiceRequest.bodySite.coding.id" />
      <max value="0" />
    </element>
    <element id="ServiceRequest.bodySite.coding.extension">
      <path value="ServiceRequest.bodySite.coding.extension" />
      <max value="0" />
    </element>
    <element id="ServiceRequest.bodySite.coding.system">
      <path value="ServiceRequest.bodySite.coding.system" />
      <min value="1" />
    </element>
    <element id="ServiceRequest.bodySite.coding.version">
      <path value="ServiceRequest.bodySite.coding.version" />
      <max value="0" />
    </element>
    <element id="ServiceRequest.bodySite.coding.code">
      <path value="ServiceRequest.bodySite.coding.code" />
      <min value="1" />
    </element>
    <element id="ServiceRequest.bodySite.coding.display">
      <path value="ServiceRequest.bodySite.coding.display" />
      <min value="1" />
    </element>
    <element id="ServiceRequest.bodySite.coding.userSelected">
      <path value="ServiceRequest.bodySite.coding.userSelected" />
      <max value="0" />
    </element>
    <element id="ServiceRequest.bodySite.text">
      <path value="ServiceRequest.bodySite.text" />
      <max value="0" />
    </element>
    <element id="ServiceRequest.bodyStructure">
      <path value="ServiceRequest.bodyStructure" />
      <max value="0" />
    </element>
    <element id="ServiceRequest.note">
      <path value="ServiceRequest.note" />
      <type>
        <code value="Annotation" />
        <profile value="https://fhir.synapxe.sg/StructureDefinition/profile-annotation" />
      </type>
    </element>
    <element id="ServiceRequest.patientInstruction">
      <path value="ServiceRequest.patientInstruction" />
      <max value="0" />
    </element>
    <element id="ServiceRequest.relevantHistory">
      <path value="ServiceRequest.relevantHistory" />
      <max value="0" />
      <type>
        <code value="Reference" />
        <targetProfile value="https://fhir.synapxe.sg/StructureDefinition/profile-provenance" />
        <aggregation value="contained" />
      </type>
    </element>
    <element id="ServiceRequest.relevantHistory.id">
      <path value="ServiceRequest.relevantHistory.id" />
      <max value="0" />
    </element>
    <element id="ServiceRequest.relevantHistory.extension">
      <path value="ServiceRequest.relevantHistory.extension" />
      <max value="0" />
    </element>
    <element id="ServiceRequest.relevantHistory.reference">
      <path value="ServiceRequest.relevantHistory.reference" />
      <min value="1" />
    </element>
    <element id="ServiceRequest.relevantHistory.type">
      <path value="ServiceRequest.relevantHistory.type" />
      <max value="0" />
    </element>
    <element id="ServiceRequest.relevantHistory.identifier">
      <path value="ServiceRequest.relevantHistory.identifier" />
      <max value="0" />
    </element>
    <element id="ServiceRequest.relevantHistory.display">
      <path value="ServiceRequest.relevantHistory.display" />
      <max value="0" />
    </element>
  </differential>
</StructureDefinition>