<StructureDefinition xmlns="http://hl7.org/fhir">
  <url value="https://fhir.synapxe.sg/StructureDefinition/profile-referral" />
  <name value="Referral" />
  <status value="active" />
  <description value="This resource stores a record of a request by a healthcare provider for a patient to be evaluated or treated by another healthcare professional or specialist. Referrals are made when a patient needs services, expertise, or procedures that are beyond the scope of the referring provider. The referral document typically includes patient information, reason for referral, relevant medical history, and specific questions or concerns to be addressed by the receiving provider." />
  <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>