<StructureDefinition xmlns="http://hl7.org/fhir">
  <id value="SatuSehatObservation" />
  <url value="https://fhir.kemkes.go.id/r4/StructureDefinition/Observation" />
  <name value="SatuSehatObservation" />
  <title value="Satu Sehat Observation" />
  <status value="active" />
  <date value="2024-01-01" />
  <description value="Defines the ID Core constraints and extensions on the Observation resource for the minimal set of data to query and retrieve observation value associated with laboratory results for a patient." />
  <fhirVersion value="4.0.1" />
  <kind value="resource" />
  <abstract value="false" />
  <type value="Observation" />
  <baseDefinition value="http://hl7.org/fhir/StructureDefinition/Observation" />
  <derivation value="constraint" />
  <differential>
    <element id="Observation.identifier">
      <path value="Observation.identifier" />
      <definition value="Berisi satu atau lebih daftar data mengenai ID internal faskes untuk observasi. Ini adalah ID resmi yang diterbitkan oleh faskes untuk menandai hasil observasi pasien, yang setiap datanya direpresentasikan dengan tipe data Identifier." />
      <max value="1" />
    </element>
    <element id="Observation.basedOn">
      <path value="Observation.basedOn" />
      <definition value="Berisi data suatu rencana, proposal atau permintaan yang dipenuhi oleh observasi dengan tipe data Reference, yang direferensikan ke data yang tersimpan di resource CarePlan | DeviceRequest | ImmunizationRecommendation | MedicationRequest | NutritionOrder | ServiceRequest." />
      <max value="1" />
    </element>
    <element id="Observation.partOf">
      <path value="Observation.partOf" />
      <definition value="Berisi data observasi bagian dari proses yang lebih besar dengan tipe data Reference, yang direferensikan ke data yang tersimpan di resource MedicationAdministration | MedicationDispense | MedicationStatement | Procedure | Immunization | ImagingStudy." />
      <max value="1" />
    </element>
    <element id="Observation.status">
      <path value="Observation.status" />
      <definition value="Berisi data mengenai status dari hasil observasi dengan tipe data code yang nilainya mengacu pada data terminologi ObservationStatus." />
    </element>
    <element id="Observation.category">
      <path value="Observation.category" />
      <definition value="Berisi kode yang mengklasifikasikan jenis observasi yang dilakukan dengan tipe data CodeableConcept." />
      <max value="1" />
    </element>
    <element id="Observation.code">
      <path value="Observation.code" />
      <definition value="Berisi kode observasi dengan tipe data CodeableConcept." />
    </element>
    <element id="Observation.subject">
      <path value="Observation.subject" />
      <definition value="Berisi data pasien yang memiliki hasil observasi dengan tipe data Reference, yang direferensikan ke data yang tersimpan di resource Patient | Group | Device | Location." />
      <min value="1" />
    </element>
    <element id="Observation.focus">
      <path value="Observation.focus" />
      <definition value="Berisi data mengenai fokus sebenarnya dari suatu observasi bila bukan terkait catatan observasi seorang pasien dengan tipe data Reference yang direferensikan ke resource yang terkait sesuai dengan kasus yang ada." />
      <max value="1" />
    </element>
    <element id="Observation.encounter">
      <path value="Observation.encounter" />
      <definition value="Berisi data kunjungan di mana hasil observasi didapatkan dengan tipe data Reference, yang direferensikan ke data yang tersimpan di resource Encounter di mana observasi ini dibuat." />
      <min value="1" />
    </element>
    <element id="Observation.effective[x]">
      <path value="Observation.effective[x]" />
      <slicing>
        <discriminator>
          <type value="type" />
          <path value="$this" />
        </discriminator>
        <ordered value="false" />
        <rules value="open" />
      </slicing>
      <definition value="Berisi data mengenai waktu/periode atau waktu yang relevan secara klinis untuk observasi." />
    </element>
    <element id="Observation.effective[x]:effectiveDateTime">
      <path value="Observation.effective[x]" />
      <sliceName value="effectiveDateTime" />
      <definition value="Berisi data mengenai kapan observasi dilakukan dengan tipe data dateTime, dengan format yang diperbolehkan YYYY, YYYY-MM, YYYY-MM-DD atau YYYY-MM-DDThh:mm:ss+zz:zz." />
      <min value="0" />
      <max value="1" />
      <type>
        <code value="dateTime" />
      </type>
    </element>
    <element id="Observation.effective[x]:effectivePeriod">
      <path value="Observation.effective[x]" />
      <sliceName value="effectivePeriod" />
      <definition value="Berisi data waktu dari observasi dimulai sampai selesai (arrived to finished) dengan tipe data Period." />
      <min value="0" />
      <max value="1" />
      <type>
        <code value="Period" />
      </type>
    </element>
    <element id="Observation.effective[x]:effectiveTiming">
      <path value="Observation.effective[x]" />
      <sliceName value="effectiveTiming" />
      <definition value="Berisi data kapan observasi dilakukan dengan tipe data Timing." />
      <min value="0" />
      <max value="1" />
      <type>
        <code value="Timing" />
      </type>
    </element>
    <element id="Observation.effective[x]:effectiveInstant">
      <path value="Observation.effective[x]" />
      <sliceName value="effectiveInstant" />
      <definition value="Berisi data tanggal dan waktu observasi tersedia, biasanya setelah hasilnya ditinjau/direview dan diverifikasi dengan tipe data instant." />
      <min value="0" />
      <max value="1" />
      <type>
        <code value="instant" />
      </type>
    </element>
    <element id="Observation.issued">
      <path value="Observation.issued" />
      <definition value="Berisi data tanggal dan waktu versi observasi ini tersedia, biasanya setelah hasilnya ditinjau/direview dan diverifikasi dengan tipe data instant, dalam format YYYY-MM-DDThh:mm:ss.sss+zz:zz." />
    </element>
    <element id="Observation.performer">
      <path value="Observation.performer" />
      <definition value="Berisi data siapa yang bertanggung jawab untuk menyatakan nilai observasi sebagai 'benar' dengan tipe data Reference, yang direferensikan ke data yang tersimpan di resource Practitioner | PractitionerRole | Organization | CareTeam | Patient | RelatedPerson." />
      <max value="1" />
    </element>
    <element id="Observation.value[x]">
      <path value="Observation.value[x]" />
      <slicing>
        <discriminator>
          <type value="type" />
          <path value="$this" />
        </discriminator>
        <ordered value="false" />
        <rules value="open" />
      </slicing>
      <definition value="Berisi data mengenai informasi hasil aktual dari pengamatan." />
    </element>
    <element id="Observation.value[x]:valueQuantity">
      <path value="Observation.value[x]" />
      <sliceName value="valueQuantity" />
      <definition value="Berisi data hasil observasi berupa numerik dengan satuan dengan tipe data Quantity." />
      <min value="0" />
      <max value="1" />
      <type>
        <code value="Quantity" />
      </type>
    </element>
    <element id="Observation.value[x]:valueCodeableConcept">
      <path value="Observation.value[x]" />
      <sliceName value="valueCodeableConcept" />
      <definition value="Berisi data hasil observasi berupa kode dengan tipe data CodeableConcept." />
      <min value="0" />
      <max value="1" />
      <type>
        <code value="CodeableConcept" />
      </type>
    </element>
    <element id="Observation.value[x]:valueString">
      <path value="Observation.value[x]" />
      <sliceName value="valueString" />
      <definition value="Berisi data hasil observasi berupa string/text dengan tipe data string." />
      <min value="0" />
      <max value="1" />
      <type>
        <code value="string" />
      </type>
    </element>
    <element id="Observation.value[x]:valueBoolean">
      <path value="Observation.value[x]" />
      <sliceName value="valueBoolean" />
      <definition value="Berisi data hasil observasi Ya/Tidak (true/false) dengan tipe data boolean." />
      <min value="0" />
      <max value="1" />
      <type>
        <code value="boolean" />
      </type>
    </element>
    <element id="Observation.value[x]:valueInteger">
      <path value="Observation.value[x]" />
      <sliceName value="valueInteger" />
      <definition value="Berisi data hasil observasi berupa numerik tanpa memerlukan satuan dengan tipe data integer." />
      <min value="0" />
      <max value="1" />
      <type>
        <code value="integer" />
      </type>
    </element>
    <element id="Observation.value[x]:valueRange">
      <path value="Observation.value[x]" />
      <sliceName value="valueRange" />
      <definition value="Berisi data hasil observasi berupa range dengan tipe data Range." />
      <min value="0" />
      <max value="1" />
      <type>
        <code value="Range" />
      </type>
    </element>
    <element id="Observation.value[x]:valueRatio">
      <path value="Observation.value[x]" />
      <sliceName value="valueRatio" />
      <definition value="Berisi data hasil observasi berupa rasio dengan tipe data Ratio." />
      <min value="0" />
      <max value="1" />
      <type>
        <code value="Ratio" />
      </type>
    </element>
    <element id="Observation.value[x]:valueSampledData">
      <path value="Observation.value[x]" />
      <sliceName value="valueSampledData" />
      <definition value="Berisi data yang berasal dari serangkaian pengukuran yang dilakukan oleh alat, yang mungkin memiliki batas atas dan bawah dengan tipe data SampledData." />
      <min value="0" />
      <max value="1" />
      <type>
        <code value="SampledData" />
      </type>
    </element>
    <element id="Observation.value[x]:valueTime">
      <path value="Observation.value[x]" />
      <sliceName value="valueTime" />
      <definition value="Berisi data hasil observasi dalam satuan waktu yaitu hh:mm:ss dengan tipe data time." />
      <min value="0" />
      <max value="1" />
      <type>
        <code value="time" />
      </type>
    </element>
    <element id="Observation.value[x]:valueDateTime">
      <path value="Observation.value[x]" />
      <sliceName value="valueDateTime" />
      <definition value="Berisi data hasil observasi dalam bentuk tanggal, tanggal-waktu, atau tanggal parsial dengan tipe data dateTime, dengan format yang diperbolehkan YYYY, YYYY-MM, YYYY-MM-DD atau YYYY-MM-DDThh:mm:ss+zz:zz." />
      <min value="0" />
      <max value="1" />
      <type>
        <code value="dateTime" />
      </type>
    </element>
    <element id="Observation.value[x]:valuePeriod">
      <path value="Observation.value[x]" />
      <sliceName value="valuePeriod" />
      <definition value="Berisi data hasil observasi berupa tanggal/waktu mulai dan berakhir dengan tipe data Period." />
      <min value="0" />
      <max value="1" />
      <type>
        <code value="Period" />
      </type>
    </element>
    <element id="Observation.dataAbsentReason">
      <path value="Observation.dataAbsentReason" />
      <definition value="Berisi data alasan hasil tidak tersedia dengan tipe data CodeableConcept." />
    </element>
    <element id="Observation.interpretation">
      <path value="Observation.interpretation" />
      <definition value="Berisi data hasil kesimpulan dari observasi yang dilakukan dengan tipe data CodeableConcept." />
      <max value="1" />
    </element>
    <element id="Observation.note">
      <path value="Observation.note" />
      <definition value="Berisi data komentar tentang hasil observasi yang dapat mencakup pernyataan umum tentang observasi, atau pernyataan tentang nilai hasil yang signifikan, tidak terduga, atau tidak dapat diandalkan dengan tipe data Annotation." />
      <max value="1" />
    </element>
    <element id="Observation.bodySite">
      <path value="Observation.bodySite" />
      <definition value="Berisi data yang berkaitan dengan bagian tubuh yang diobservasi dengan tipe CodeableConcept." />
    </element>
    <element id="Observation.method">
      <path value="Observation.method" />
      <definition value="Berisi data mekanisme atau metode yang dilakukan untuk melakukan observasi dengan tipe CodeableConcept." />
    </element>
    <element id="Observation.specimen">
      <path value="Observation.specimen" />
      <definition value="Berisi data spesimen yang digunakan ketika observasi dilakukan dengan tipe data Reference, yang direferensikan ke data yang tersimpan di resource Specimen." />
    </element>
    <element id="Observation.device">
      <path value="Observation.device" />
      <definition value="Berisi data mengenai alat yang digunakan untuk menghasilkan data observasi, dengan tipe data Reference, data alat menggunakan referensi ke data yang tersimpan di resource Device atau DeviceMetric." />
    </element>
    <element id="Observation.referenceRange">
      <path value="Observation.referenceRange" />
      <definition value="Berisi data panduan tentang cara menginterpretasikan nilai dengan membandingkannya dengan rentang nilai normal atau yang direkomendasikan dengan tipe data BackboneElement." />
      <max value="1" />
    </element>
    <element id="Observation.referenceRange.low">
      <path value="Observation.referenceRange.low" />
      <definition value="Berisi data nilai batas bawah rentang referensi dengan tipe data SimpleQuantity." />
    </element>
    <element id="Observation.referenceRange.high">
      <path value="Observation.referenceRange.high" />
      <definition value="Berisi data nilai batas atas rentang referensi dengan tipe data SimpleQuantity." />
    </element>
    <element id="Observation.referenceRange.type">
      <path value="Observation.referenceRange.type" />
      <definition value="Berisi data yang berkaitan dengan rentang referensi kualifikasi yang digunakan untuk observasi dengan tipe data CodeableConcept." />
    </element>
    <element id="Observation.referenceRange.appliesTo">
      <path value="Observation.referenceRange.appliesTo" />
      <definition value="Berisi data mengenai kode untuk menunjukkan populasi target yang berlaku untuk rentang referensi ini, dengan tipe data CodeableConcept." />
      <max value="1" />
    </element>
    <element id="Observation.referenceRange.age">
      <path value="Observation.referenceRange.age" />
      <definition value="Berisi satu atau lebih data mengenai usia saat rentang referensi ini berlaku dengan tipe data Range." />
    </element>
    <element id="Observation.referenceRange.text">
      <path value="Observation.referenceRange.text" />
      <definition value="Berisi data rentang referensi berbasis teks dalam pengamatan yang dapat digunakan ketika rentang kuantitatif tidak sesuai untuk pengamatan, dengan tipe data string." />
    </element>
    <element id="Observation.hasMember">
      <path value="Observation.hasMember" />
      <definition value="Berisi data resource terkait yang dimiliki oleh kelompok observasi dengan tipe data Reference, yang direferensikan ke data yang tersimpan di resource Observation | QuestionnaireResponse | MolecularSequence." />
      <max value="1" />
    </element>
    <element id="Observation.derivedFrom">
      <path value="Observation.derivedFrom" />
      <definition value="Berisi data target resource yang mewakili pengukuran di mana hasil observasi didapatkan dengan tipe data Reference, yang direferensikan ke data yang tersimpan di resource DocumentReference | ImagingStudy | Media | QuestionnaireResponse | Observation | MolecularSequence." />
      <max value="1" />
    </element>
    <element id="Observation.component">
      <path value="Observation.component" />
      <definition value="Berisi data mengenai beberapa pengamatan komponen. Pengamatan komponen ini dinyatakan sebagai pasangan nilai kode terpisah yang berbagi atribut yang sama dengan tipe data BackboneElement." />
      <max value="1" />
    </element>
    <element id="Observation.component.code">
      <path value="Observation.component.code" />
      <definition value="Berisi satu atau lebih jenis observasi komponen (kode/jenis) dengan tipe data CodeableConcept." />
    </element>
    <element id="Observation.component.value[x]">
      <path value="Observation.component.value[x]" />
      <slicing>
        <discriminator>
          <type value="type" />
          <path value="$this" />
        </discriminator>
        <ordered value="false" />
        <rules value="open" />
      </slicing>
      <definition value="Berisi data mengenai informasi hasil komponen aktual dari pengamatan." />
    </element>
    <element id="Observation.component.value[x]:valueQuantity">
      <path value="Observation.component.value[x]" />
      <sliceName value="valueQuantity" />
      <definition value="Berisi data mengenai informasi hasil komponen aktual dari pengamatan dengan tipe data Quantity." />
      <min value="0" />
      <max value="1" />
      <type>
        <code value="Quantity" />
      </type>
    </element>
    <element id="Observation.component.value[x]:valueCodeableConcept">
      <path value="Observation.component.value[x]" />
      <sliceName value="valueCodeableConcept" />
      <definition value="Berisi data mengenai informasi hasil komponen aktual dari pengamatan dengan tipe data CodeableConcept." />
      <min value="0" />
      <max value="1" />
      <type>
        <code value="CodeableConcept" />
      </type>
    </element>
    <element id="Observation.component.value[x]:valueString">
      <path value="Observation.component.value[x]" />
      <sliceName value="valueString" />
      <definition value="Berisi data mengenai informasi hasil komponen aktual dari pengamatan dengan tipe data string." />
      <min value="0" />
      <max value="1" />
      <type>
        <code value="string" />
      </type>
    </element>
    <element id="Observation.component.value[x]:valueBoolean">
      <path value="Observation.component.value[x]" />
      <sliceName value="valueBoolean" />
      <definition value="Berisi data mengenai informasi hasil komponen aktual dari pengamatan dengan tipe boolean." />
      <min value="0" />
      <max value="1" />
      <type>
        <code value="boolean" />
      </type>
    </element>
    <element id="Observation.component.value[x]:valueInteger">
      <path value="Observation.component.value[x]" />
      <sliceName value="valueInteger" />
      <definition value="Berisi data mengenai informasi hasil komponen aktual dari pengamatan dengan tipe data integer." />
      <min value="0" />
      <max value="1" />
      <type>
        <code value="integer" />
      </type>
    </element>
    <element id="Observation.component.value[x]:valueRange">
      <path value="Observation.component.value[x]" />
      <sliceName value="valueRange" />
      <definition value="Berisi data mengenai informasi hasil komponen aktual dari pengamatan dengan tipe data Range." />
      <min value="0" />
      <max value="1" />
      <type>
        <code value="Range" />
      </type>
    </element>
    <element id="Observation.component.value[x]:valueRatio">
      <path value="Observation.component.value[x]" />
      <sliceName value="valueRatio" />
      <definition value="Berisi data mengenai informasi hasil komponen aktual dari pengamatan dengan tipe data Ratio." />
      <min value="0" />
      <max value="1" />
      <type>
        <code value="Ratio" />
      </type>
    </element>
    <element id="Observation.component.value[x]:valueSampledData">
      <path value="Observation.component.value[x]" />
      <sliceName value="valueSampledData" />
      <definition value="Berisi data mengenai informasi hasil komponen aktual dari pengamatan dengan tipe data SampledData." />
      <min value="0" />
      <max value="1" />
      <type>
        <code value="SampledData" />
      </type>
    </element>
    <element id="Observation.component.value[x]:valueTime">
      <path value="Observation.component.value[x]" />
      <sliceName value="valueTime" />
      <definition value="Berisi data mengenai informasi hasil komponen aktual dari pengamatan dengan tipe data time." />
      <min value="0" />
      <max value="1" />
      <type>
        <code value="time" />
      </type>
    </element>
    <element id="Observation.component.value[x]:valueDateTime">
      <path value="Observation.component.value[x]" />
      <sliceName value="valueDateTime" />
      <definition value="Berisi data mengenai informasi hasil komponen aktual dari pengamatan dengan tipe data dateTime, dengan format yang diperbolehkan YYYY, YYYY-MM, YYYY-MM-DD atau YYYY-MM-DDThh:mm:ss+zz:zz." />
      <min value="0" />
      <max value="1" />
      <type>
        <code value="dateTime" />
      </type>
    </element>
    <element id="Observation.component.value[x]:valuePeriod">
      <path value="Observation.component.value[x]" />
      <sliceName value="valuePeriod" />
      <definition value="Berisi data mengenai informasi hasil komponen aktual dari pengamatan dengan tipe data Period." />
      <min value="0" />
      <max value="1" />
      <type>
        <code value="Period" />
      </type>
    </element>
    <element id="Observation.component.dataAbsentReason">
      <path value="Observation.component.dataAbsentReason" />
      <definition value="Berisi data mengenai alasan mengapa nilai yang diharapkan dalam elemen Observation.component.value[x] hilang dengan tipe data CodeableConcept." />
    </element>
    <element id="Observation.component.interpretation">
      <path value="Observation.component.interpretation" />
      <definition value="Berisi satu atau lebih data penilaian kategoris dari nilai observasi dengan tipe data CodeableConcept." />
      <max value="1" />
    </element>
    <element id="Observation.component.referenceRange">
      <path value="Observation.component.referenceRange" />
      <definition value="Berisi data panduan tentang cara menginterpretasikan nilai dengan membandingkan rentang normal atau yang direkomendasikan dengan tipe data BackboneElement." />
      <max value="1" />
      <type>
        <code value="BackboneElement" />
      </type>
    </element>
    <element id="Observation.component.referenceRange.low">
      <path value="Observation.component.referenceRange.low" />
      <definition value="Berisi data mengenai nilai batas bawah rentang referensi." />
    </element>
    <element id="Observation.component.referenceRange.high">
      <path value="Observation.component.referenceRange.high" />
      <definition value="Berisi data mengenai nilai batas atas rentang referensi." />
    </element>
    <element id="Observation.component.referenceRange.type">
      <path value="Observation.component.referenceRange.type" />
      <definition value="Berisi satu atau lebih data mengenai kode untuk menunjukkan bagian mana dari populasi referensi yang ditargetkan berlaku dengan tipe data CodeableConcept." />
    </element>
    <element id="Observation.component.referenceRange.appliesTo">
      <path value="Observation.component.referenceRange.appliesTo" />
      <definition value="Berisi satu atau lebih data mengenai kode untuk menunjukkan populasi target yang berlaku untuk rentang referensi ini dengan tipe data CodeableConcept." />
      <max value="1" />
    </element>
    <element id="Observation.component.referenceRange.age">
      <path value="Observation.component.referenceRange.age" />
      <definition value="Berisi data mengenai usia saat rentang referensi ini berlaku dengan tipe data Range." />
    </element>
    <element id="Observation.component.referenceRange.text">
      <path value="Observation.component.referenceRange.text" />
      <definition value="Berisi data mengenai rentang referensi berbasis teks dalam pengamatan yang dapat digunakan ketika rentang kuantitatif tidak sesuai untuk pengamatan dengan tipe data string." />
    </element>
  </differential>
</StructureDefinition>