<StructureDefinition xmlns="http://hl7.org/fhir">
  <url value="https://fhir.synapxe.sg/StructureDefinition/profile-observation-bs" />
  <name value="Observation" />
  <status value="active" />
  <fhirVersion value="5.0.0" />
  <kind value="resource" />
  <abstract value="false" />
  <type value="Observation" />
  <baseDefinition value="http://hl7.org/fhir/StructureDefinition/Observation" />
  <derivation value="constraint" />
  <differential>
    <element id="Observation.modifierExtension">
      <path value="Observation.modifierExtension" />
      <max value="0" />
    </element>
    <element id="Observation.identifier">
      <path value="Observation.identifier" />
      <min value="1" />
      <max value="1" />
      <type>
        <code value="Identifier" />
        <profile value="https://fhir.synapxe.sg/StructureDefinition/profile-identifier" />
      </type>
    </element>
    <element id="Observation.identifier.system">
      <path value="Observation.identifier.system" />
      <fixedUri value="https://fhir.synapxe.sg/NamingSystem/workflow-no" />
    </element>
    <element id="Observation.instantiates[x]">
      <path value="Observation.instantiates[x]" />
      <max value="0" />
    </element>
    <element id="Observation.basedOn">
      <path value="Observation.basedOn" />
      <min value="1" />
      <max value="1" />
      <type>
        <code value="Reference" />
        <targetProfile value="https://fhir.synapxe.sg/StructureDefinition/profile-servicerequest" />
        <aggregation value="bundled" />
      </type>
    </element>
    <element id="Observation.basedOn.id">
      <path value="Observation.basedOn.id" />
      <max value="0" />
    </element>
    <element id="Observation.basedOn.extension">
      <path value="Observation.basedOn.extension" />
      <max value="0" />
    </element>
    <element id="Observation.basedOn.reference">
      <path value="Observation.basedOn.reference" />
      <max value="0" />
    </element>
    <element id="Observation.basedOn.type">
      <path value="Observation.basedOn.type" />
      <max value="0" />
    </element>
    <element id="Observation.basedOn.identifier">
      <path value="Observation.basedOn.identifier" />
      <max value="0" />
    </element>
    <element id="Observation.basedOn.display">
      <path value="Observation.basedOn.display" />
      <min value="1" />
    </element>
    <element id="Observation.triggeredBy">
      <path value="Observation.triggeredBy" />
      <max value="0" />
    </element>
    <element id="Observation.partOf">
      <path value="Observation.partOf" />
      <max value="0" />
    </element>
    <element id="Observation.category">
      <path value="Observation.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/screening-category" />
      </binding>
    </element>
    <element id="Observation.category.extension">
      <path value="Observation.category.extension" />
      <max value="0" />
    </element>
    <element id="Observation.category.coding.system">
      <path value="Observation.category.coding.system" />
      <fixedUri value="https://fhir.synapxe.sg/CodeSystem/screening-category" />
    </element>
    <element id="Observation.focus">
      <path value="Observation.focus" />
      <max value="0" />
    </element>
    <element id="Observation.encounter">
      <path value="Observation.encounter" />
      <max value="0" />
    </element>
    <element id="Observation.effective[x]">
      <path value="Observation.effective[x]" />
      <min value="1" />
      <type>
        <code value="dateTime" />
      </type>
    </element>
    <element id="Observation.issued">
      <path value="Observation.issued" />
      <max value="0" />
    </element>
    <element id="Observation.performer">
      <path value="Observation.performer" />
      <min value="1" />
      <max value="1" />
      <type>
        <code value="Reference" />
        <targetProfile value="https://fhir.synapxe.sg/StructureDefinition/profile-organization" />
      </type>
    </element>
    <element id="Observation.performer.id">
      <path value="Observation.performer.id" />
      <max value="0" />
    </element>
    <element id="Observation.performer.extension">
      <path value="Observation.performer.extension" />
      <max value="0" />
    </element>
    <element id="Observation.performer.reference">
      <path value="Observation.performer.reference" />
      <max value="0" />
    </element>
    <element id="Observation.performer.type">
      <path value="Observation.performer.type" />
      <min value="1" />
      <fixedUri value="Organization" />
    </element>
    <element id="Observation.performer.identifier">
      <path value="Observation.performer.identifier" />
      <min value="1" />
      <type>
        <code value="Identifier" />
        <profile value="https://fhir.synapxe.sg/StructureDefinition/profile-identifier" />
      </type>
    </element>
    <element id="Observation.performer.identifier.system">
      <path value="Observation.performer.identifier.system" />
      <fixedUri value="https://fhir.synapxe.sg/NamingSystem/hci-code" />
    </element>
    <element id="Observation.performer.display">
      <path value="Observation.performer.display" />
      <max value="0" />
    </element>
    <element id="Observation.value[x]">
      <path value="Observation.value[x]" />
      <min value="1" />
      <type>
        <code value="Quantity" />
      </type>
      <type>
        <code value="CodeableConcept" />
        <profile value="https://fhir.synapxe.sg/StructureDefinition/profile-codeableconcept" />
      </type>
      <type>
        <code value="string" />
      </type>
    </element>
    <element id="Observation.dataAbsentReason">
      <path value="Observation.dataAbsentReason" />
      <max value="0" />
    </element>
    <element id="Observation.interpretation">
      <path value="Observation.interpretation" />
      <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." />
      <comment value="Not all terminology uses fit this general pattern. In some cases, models should not use CodeableConcept and use Coding directly and provide their own structure for managing text, codings, translations and the relationship between elements and pre- and post-coordination." />
      <min value="1" />
      <max value="1" />
    </element>
    <element id="Observation.interpretation.extension">
      <path value="Observation.interpretation.extension" />
      <max value="0" />
    </element>
    <element id="Observation.interpretation.coding">
      <path value="Observation.interpretation.coding" />
      <max value="0" />
    </element>
    <element id="Observation.interpretation.text">
      <path value="Observation.interpretation.text" />
      <min value="1" />
    </element>
    <element id="Observation.bodySite">
      <path value="Observation.bodySite" />
      <max value="0" />
    </element>
    <element id="Observation.bodyStructure">
      <path value="Observation.bodyStructure" />
      <max value="0" />
    </element>
    <element id="Observation.method">
      <path value="Observation.method" />
      <max value="0" />
    </element>
    <element id="Observation.specimen">
      <path value="Observation.specimen" />
      <max value="0" />
    </element>
    <element id="Observation.device">
      <path value="Observation.device" />
      <max value="0" />
    </element>
    <element id="Observation.referenceRange">
      <path value="Observation.referenceRange" />
      <max value="0" />
    </element>
    <element id="Observation.hasMember">
      <path value="Observation.hasMember" />
      <slicing>
        <discriminator>
          <type value="profile" />
          <path value="resolve()" />
        </discriminator>
        <rules value="open" />
      </slicing>
    </element>
    <element id="Observation.hasMember:mammography">
      <path value="Observation.hasMember" />
      <sliceName value="mammography" />
      <max value="1" />
      <type>
        <code value="Reference" />
        <targetProfile value="https://fhir.synapxe.sg/StructureDefinition/profile-observation" />
        <aggregation value="bundled" />
      </type>
    </element>
    <element id="Observation.hasMember:mammography.id">
      <path value="Observation.hasMember.id" />
      <max value="0" />
    </element>
    <element id="Observation.hasMember:mammography.extension">
      <path value="Observation.hasMember.extension" />
      <max value="0" />
    </element>
    <element id="Observation.hasMember:mammography.reference">
      <path value="Observation.hasMember.reference" />
      <min value="1" />
    </element>
    <element id="Observation.hasMember:mammography.type">
      <path value="Observation.hasMember.type" />
      <max value="0" />
    </element>
    <element id="Observation.hasMember:mammography.identifier">
      <path value="Observation.hasMember.identifier" />
      <max value="0" />
    </element>
    <element id="Observation.hasMember:mammography.display">
      <path value="Observation.hasMember.display" />
      <max value="0" />
    </element>
    <element id="Observation.hasMember:ultrasound">
      <path value="Observation.hasMember" />
      <sliceName value="ultrasound" />
      <max value="1" />
      <type>
        <code value="Reference" />
        <targetProfile value="https://fhir.synapxe.sg/StructureDefinition/profile-observation" />
        <aggregation value="bundled" />
      </type>
    </element>
    <element id="Observation.hasMember:ultrasound.id">
      <path value="Observation.hasMember.id" />
      <max value="0" />
    </element>
    <element id="Observation.hasMember:ultrasound.extension">
      <path value="Observation.hasMember.extension" />
      <max value="0" />
    </element>
    <element id="Observation.hasMember:ultrasound.reference">
      <path value="Observation.hasMember.reference" />
      <min value="1" />
    </element>
    <element id="Observation.hasMember:ultrasound.type">
      <path value="Observation.hasMember.type" />
      <max value="0" />
    </element>
    <element id="Observation.hasMember:ultrasound.identifier">
      <path value="Observation.hasMember.identifier" />
      <max value="0" />
    </element>
    <element id="Observation.hasMember:ultrasound.display">
      <path value="Observation.hasMember.display" />
      <max value="0" />
    </element>
    <element id="Observation.hasMember:imagingResult">
      <path value="Observation.hasMember" />
      <sliceName value="imagingResult" />
      <max value="1" />
      <type>
        <code value="Reference" />
        <targetProfile value="https://fhir.synapxe.sg/StructureDefinition/profile-observation" />
        <aggregation value="bundled" />
      </type>
    </element>
    <element id="Observation.hasMember:imagingResult.id">
      <path value="Observation.hasMember.id" />
      <max value="0" />
    </element>
    <element id="Observation.hasMember:imagingResult.extension">
      <path value="Observation.hasMember.extension" />
      <max value="0" />
    </element>
    <element id="Observation.hasMember:imagingResult.reference">
      <path value="Observation.hasMember.reference" />
      <min value="1" />
    </element>
    <element id="Observation.hasMember:imagingResult.type">
      <path value="Observation.hasMember.type" />
      <max value="0" />
    </element>
    <element id="Observation.hasMember:imagingResult.identifier">
      <path value="Observation.hasMember.identifier" />
      <max value="0" />
    </element>
    <element id="Observation.hasMember:imagingResult.display">
      <path value="Observation.hasMember.display" />
      <max value="0" />
    </element>
    <element id="Observation.hasMember:clinicalAssessment">
      <path value="Observation.hasMember" />
      <sliceName value="clinicalAssessment" />
      <min value="1" />
      <max value="1" />
      <type>
        <code value="Reference" />
        <targetProfile value="https://fhir.synapxe.sg/StructureDefinition/profile-clinical-assessment" />
        <aggregation value="bundled" />
      </type>
    </element>
    <element id="Observation.hasMember:clinicalAssessment.id">
      <path value="Observation.hasMember.id" />
      <max value="0" />
    </element>
    <element id="Observation.hasMember:clinicalAssessment.extension">
      <path value="Observation.hasMember.extension" />
      <max value="0" />
    </element>
    <element id="Observation.hasMember:clinicalAssessment.reference">
      <path value="Observation.hasMember.reference" />
      <min value="1" />
    </element>
    <element id="Observation.hasMember:clinicalAssessment.type">
      <path value="Observation.hasMember.type" />
      <max value="0" />
    </element>
    <element id="Observation.hasMember:clinicalAssessment.identifier">
      <path value="Observation.hasMember.identifier" />
      <max value="0" />
    </element>
    <element id="Observation.hasMember:clinicalAssessment.display">
      <path value="Observation.hasMember.display" />
      <max value="0" />
    </element>
    <element id="Observation.hasMember:cytology">
      <path value="Observation.hasMember" />
      <sliceName value="cytology" />
      <max value="1" />
      <type>
        <code value="Reference" />
        <targetProfile value="https://fhir.synapxe.sg/StructureDefinition/profile-observation" />
        <aggregation value="bundled" />
      </type>
    </element>
    <element id="Observation.hasMember:cytology.id">
      <path value="Observation.hasMember.id" />
      <max value="0" />
    </element>
    <element id="Observation.hasMember:cytology.extension">
      <path value="Observation.hasMember.extension" />
      <max value="0" />
    </element>
    <element id="Observation.hasMember:cytology.reference">
      <path value="Observation.hasMember.reference" />
      <min value="1" />
    </element>
    <element id="Observation.hasMember:cytology.type">
      <path value="Observation.hasMember.type" />
      <max value="0" />
    </element>
    <element id="Observation.hasMember:cytology.identifier">
      <path value="Observation.hasMember.identifier" />
      <max value="0" />
    </element>
    <element id="Observation.hasMember:cytology.display">
      <path value="Observation.hasMember.display" />
      <max value="0" />
    </element>
    <element id="Observation.hasMember:biopsy">
      <path value="Observation.hasMember" />
      <sliceName value="biopsy" />
      <type>
        <code value="Reference" />
        <targetProfile value="https://fhir.synapxe.sg/StructureDefinition/profile-observation" />
        <aggregation value="bundled" />
      </type>
    </element>
    <element id="Observation.hasMember:biopsy.id">
      <path value="Observation.hasMember.id" />
      <max value="0" />
    </element>
    <element id="Observation.hasMember:biopsy.extension">
      <path value="Observation.hasMember.extension" />
      <max value="0" />
    </element>
    <element id="Observation.hasMember:biopsy.reference">
      <path value="Observation.hasMember.reference" />
      <min value="1" />
    </element>
    <element id="Observation.hasMember:biopsy.type">
      <path value="Observation.hasMember.type" />
      <max value="0" />
    </element>
    <element id="Observation.hasMember:biopsy.identifier">
      <path value="Observation.hasMember.identifier" />
      <max value="0" />
    </element>
    <element id="Observation.hasMember:biopsy.display">
      <path value="Observation.hasMember.display" />
      <max value="0" />
    </element>
    <element id="Observation.hasMember:openBiopsy">
      <path value="Observation.hasMember" />
      <sliceName value="openBiopsy" />
      <type>
        <code value="Reference" />
        <targetProfile value="https://fhir.synapxe.sg/StructureDefinition/profile-observation" />
        <aggregation value="bundled" />
      </type>
    </element>
    <element id="Observation.hasMember:openBiopsy.id">
      <path value="Observation.hasMember.id" />
      <max value="0" />
    </element>
    <element id="Observation.hasMember:openBiopsy.extension">
      <path value="Observation.hasMember.extension" />
      <max value="0" />
    </element>
    <element id="Observation.hasMember:openBiopsy.reference">
      <path value="Observation.hasMember.reference" />
      <min value="1" />
    </element>
    <element id="Observation.hasMember:openBiopsy.type">
      <path value="Observation.hasMember.type" />
      <max value="0" />
    </element>
    <element id="Observation.hasMember:openBiopsy.identifier">
      <path value="Observation.hasMember.identifier" />
      <max value="0" />
    </element>
    <element id="Observation.hasMember:openBiopsy.display">
      <path value="Observation.hasMember.display" />
      <max value="0" />
    </element>
    <element id="Observation.derivedFrom">
      <path value="Observation.derivedFrom" />
      <max value="0" />
    </element>
    <element id="Observation.component.id">
      <path value="Observation.component.id" />
      <max value="0" />
    </element>
    <element id="Observation.component.extension">
      <path value="Observation.component.extension" />
      <max value="0" />
    </element>
    <element id="Observation.component.modifierExtension">
      <path value="Observation.component.modifierExtension" />
      <max value="0" />
    </element>
    <element id="Observation.component.code">
      <path value="Observation.component.code" />
      <type>
        <code value="CodeableConcept" />
        <profile value="https://fhir.synapxe.sg/StructureDefinition/profile-codeableconcept" />
      </type>
    </element>
    <element id="Observation.component.value[x]">
      <path value="Observation.component.value[x]" />
      <min value="1" />
      <type>
        <code value="Quantity" />
      </type>
      <type>
        <code value="CodeableConcept" />
        <profile value="https://fhir.synapxe.sg/StructureDefinition/profile-codeableconcept" />
      </type>
      <type>
        <code value="string" />
      </type>
    </element>
    <element id="Observation.component.dataAbsentReason">
      <path value="Observation.component.dataAbsentReason" />
      <max value="0" />
    </element>
    <element id="Observation.component.interpretation">
      <path value="Observation.component.interpretation" />
      <type>
        <code value="CodeableConcept" />
        <profile value="https://fhir.synapxe.sg/StructureDefinition/profile-codeableconcept" />
      </type>
    </element>
  </differential>
</StructureDefinition>