Skip to main content

Observation Resource

Resource Observation digunakan untuk mengelola data hasil observasi, pemeriksaan, dan pengukuran terhadap pasien dalam ekosistem SATUSEHAT.

Endpoint

GET    /Observation
POST /Observation
GET /Observation/{id}
PUT /Observation/{id}
PATCH /Observation/{id}

Base URL

  • Sandbox: https://api-satusehat-stg.dto.kemkes.go.id/fhir-r4/v1
  • Production: https://api-satusehat.kemkes.go.id/fhir-r4/v1

Headers

HeaderValueRequired
AuthorizationBearer {access_token}
Content-Typeapplication/fhir+json

Structure

Mandatory Fields

  • resourceType: "Observation"
  • status: Status observasi (registered, preliminary, final, amended)
  • category: Kategori observasi
  • code: Kode observasi (LOINC)
  • subject: Referensi ke Patient
  • encounter: Referensi ke Encounter

Optional Fields

  • identifier: Identifikasi unik observasi
  • effectiveDateTime: Waktu observasi dilakukan
  • issued: Waktu hasil dikeluarkan
  • performer: Petugas yang melakukan observasi
  • valueQuantity: Nilai dengan satuan
  • valueString: Nilai berupa teks
  • interpretation: Interpretasi hasil
  • referenceRange: Rentang nilai normal

Contoh Request

POST /Observation - Vital Signs (Tekanan Darah)

{
"resourceType": "Observation",
"status": "final",
"category": [
{
"coding": [
{
"system": "http://terminology.hl7.org/CodeSystem/observation-category",
"code": "vital-signs",
"display": "Vital Signs"
}
]
}
],
"code": {
"coding": [
{
"system": "http://loinc.org",
"code": "85354-9",
"display": "Blood pressure panel with all children optional"
}
]
},
"subject": {
"reference": "Patient/100000030009"
},
"encounter": {
"reference": "Encounter/693c4ac9-c79a-44c0-b8bc-37126c3bf6db"
},
"effectiveDateTime": "2024-01-01T08:00:00+00:00",
"component": [
{
"code": {
"coding": [
{
"system": "http://loinc.org",
"code": "8480-6",
"display": "Systolic blood pressure"
}
]
},
"valueQuantity": {
"value": 120,
"unit": "mmHg",
"system": "http://unitsofmeasure.org",
"code": "mm[Hg]"
}
},
{
"code": {
"coding": [
{
"system": "http://loinc.org",
"code": "8462-4",
"display": "Diastolic blood pressure"
}
]
},
"valueQuantity": {
"value": 80,
"unit": "mmHg",
"system": "http://unitsofmeasure.org",
"code": "mm[Hg]"
}
}
]
}

POST /Observation - Laboratory Test

{
"resourceType": "Observation",
"status": "final",
"category": [
{
"coding": [
{
"system": "http://terminology.hl7.org/CodeSystem/observation-category",
"code": "laboratory",
"display": "Laboratory"
}
]
}
],
"code": {
"coding": [
{
"system": "http://loinc.org",
"code": "2093-3",
"display": "Cholesterol [Mass/volume] in Serum or Plasma"
}
]
},
"subject": {
"reference": "Patient/100000030009"
},
"encounter": {
"reference": "Encounter/693c4ac9-c79a-44c0-b8bc-37126c3bf6db"
},
"effectiveDateTime": "2024-01-01T08:00:00+00:00",
"valueQuantity": {
"value": 180,
"unit": "mg/dL",
"system": "http://unitsofmeasure.org",
"code": "mg/dL"
},
"interpretation": [
{
"coding": [
{
"system": "http://terminology.hl7.org/CodeSystem/v3-ObservationInterpretation",
"code": "H",
"display": "High"
}
]
}
],
"referenceRange": [
{
"low": {
"value": 0,
"unit": "mg/dL"
},
"high": {
"value": 200,
"unit": "mg/dL"
}
}
]
}

Kategori Observation

CategoryCodeDescription
Social Historysocial-historyRiwayat sosial
Vital Signsvital-signsTanda vital
ImagingimagingPencitraan
LaboratorylaboratoryLaboratorium
ProcedureprocedureProsedur
SurveysurveySurvei
ExamexamPemeriksaan fisik
TherapytherapyTerapi

Status Observation

StatusDescription
registeredTerdaftar
preliminaryHasil awal
finalHasil final
amendedHasil diperbaiki
correctedHasil dikoreksi
cancelledDibatalkan
entered-in-errorKesalahan entri
unknownTidak diketahui

Common LOINC Codes

LOINC CodeDisplayCategory
8310-5Body temperaturevital-signs
8480-6Systolic blood pressurevital-signs
8462-4Diastolic blood pressurevital-signs
8867-4Heart ratevital-signs
9279-1Respiratory ratevital-signs
2093-3Cholesterol totallaboratory
2571-8Triglyceridelaboratory
33747-0Glucoselaboratory

Search Parameters

ParameterTypeDescription
patientreferencePencarian berdasarkan pasien
codetokenPencarian berdasarkan kode observasi
categorytokenPencarian berdasarkan kategori
datedatePencarian berdasarkan tanggal
statustokenPencarian berdasarkan status
encounterreferencePencarian berdasarkan encounter

Error Handling

Common Error Codes

  • 400 Bad Request: Format data tidak sesuai
  • 401 Unauthorized: Token tidak valid
  • 404 Not Found: Observation tidak ditemukan
  • 422 Unprocessable Entity: Validasi data gagal