Chuyển đến nội dung chính

Bài 5: Encounter, Condition, Observation - Resources lâm sàng

Resource Encounter (lượt khám, nhập viện), Condition (chẩn đoán, vấn đề sức khỏe), Observation (vital signs, lab results, social history). Cách liên kết Resources với nhau qua References, Observation categories, Condition staging.

🏗️ Kiến trúc — Bài 5 Bài 5: Encounter, Condition, Observation - Resources lâm sàng

HL7 FHIR - Chuẩn Dữ liệu Y tế từ Cơ bản đến Nâng cao

Phần 2: FHIR Resources cốt lõi

xdev.asia

Xem bản video

1. Encounter Resource — Lượt khám / Nhập viện

Encounter mô tả một tương tác giữa bệnh nhân và nhà cung cấp dịch vụ y tế — từ lượt khám ngoại trú, nhập viện, cấp cứu, đến khám từ xa (telehealth).

Cấu trúc Encounter

ElementCardinalityTypeMô tả
status1..1codeplanned | in-progress | on-hold | discharged | completed | cancelled | entered-in-error
class1..*CodeableConceptAMB (ngoại trú) | IMP (nội trú) | EMER (cấp cứu) | VR (telehealth)
type0..*CodeableConceptLoại khám cụ thể
priority0..1CodeableConceptMức ưu tiên
subject1..1Reference(Patient)Bệnh nhân
participant0..*BackboneElementBác sĩ, điều dưỡng tham gia
period0..1PeriodThời gian bắt đầu — kết thúc
reason0..*BackboneElementLý do khám
diagnosis0..*BackboneElementChẩn đoán gắn với lượt khám
admission0..1BackboneElementChi tiết nhập viện (preAdmission, admitSource, dischargeDisposition)
location0..*BackboneElementPhòng / khoa / giường
serviceProvider0..1Reference(Organization)Cơ sở y tế

Ví dụ: Encounter ngoại trú

{
  "resourceType": "Encounter",
  "id": "encounter-outpatient-001",
  "status": "completed",
  "class": [
    {
      "coding": [
        {
          "system": "http://terminology.hl7.org/CodeSystem/v3-ActCode",
          "code": "AMB",
          "display": "ambulatory"
        }
      ]
    }
  ],
  "type": [
    {
      "coding": [
        {
          "system": "http://snomed.info/sct",
          "code": "185349003",
          "display": "Encounter for check up"
        }
      ],
      "text": "Khám sức khỏe tổng quát"
    }
  ],
  "subject": {
    "reference": "Patient/patient-001",
    "display": "Nguyễn Văn A"
  },
  "participant": [
    {
      "type": [
        {
          "coding": [
            {
              "system": "http://terminology.hl7.org/CodeSystem/v3-ParticipationType",
              "code": "ATND",
              "display": "attender"
            }
          ]
        }
      ],
      "actor": {
        "reference": "Practitioner/practitioner-001",
        "display": "BS. Trần Thị B"
      }
    }
  ],
  "period": {
    "start": "2025-01-15T08:00:00+07:00",
    "end": "2025-01-15T08:45:00+07:00"
  },
  "reason": [
    {
      "use": {
        "coding": [
          {
            "system": "http://terminology.hl7.org/CodeSystem/encounter-reason-use",
            "code": "CC",
            "display": "Chief Complaint"
          }
        ]
      },
      "value": [
        {
          "concept": {
            "text": "Đau đầu và mệt mỏi kéo dài 2 tuần"
          }
        }
      ]
    }
  ],
  "serviceProvider": {
    "reference": "Organization/org-bvdk-001",
    "display": "Bệnh viện Đa khoa Trung ương"
  }
}

Ví dụ: Encounter nhập viện

{
  "resourceType": "Encounter",
  "id": "encounter-inpatient-001",
  "status": "in-progress",
  "class": [
    {
      "coding": [
        {
          "system": "http://terminology.hl7.org/CodeSystem/v3-ActCode",
          "code": "IMP",
          "display": "inpatient encounter"
        }
      ]
    }
  ],
  "subject": {
    "reference": "Patient/patient-002"
  },
  "period": {
    "start": "2025-01-10T14:30:00+07:00"
  },
  "admission": {
    "admitSource": {
      "coding": [
        {
          "system": "http://terminology.hl7.org/CodeSystem/admit-source",
          "code": "emd",
          "display": "From accident/emergency department"
        }
      ]
    },
    "preAdmissionIdentifier": {
      "system": "http://bvdk.vn/pre-admit",
      "value": "PA-20250110-001"
    }
  },
  "location": [
    {
      "location": {
        "reference": "Location/loc-cardiology-bed-12",
        "display": "Khoa Tim mạch - Giường 12"
      },
      "status": "active",
      "period": {
        "start": "2025-01-10T15:00:00+07:00"
      }
    }
  ],
  "diagnosis": [
    {
      "condition": [
        {
          "reference": {
            "reference": "Condition/cond-001"
          }
        }
      ],
      "use": [
        {
          "coding": [
            {
              "system": "http://terminology.hl7.org/CodeSystem/diagnosis-role",
              "code": "AD",
              "display": "Admission diagnosis"
            }
          ]
        }
      ]
    }
  ]
}

2. Condition Resource — Chẩn đoán / Vấn đề sức khỏe

Condition ghi nhận chẩn đoán bệnh, vấn đề sức khỏe, hoặc tình trạng y tế của bệnh nhân.

Cấu trúc Condition

ElementCardinalityTypeMô tả
clinicalStatus0..1CodeableConceptactive | recurrence | relapse | inactive | remission | resolved
verificationStatus0..1CodeableConceptunconfirmed | provisional | differential | confirmed | refuted | entered-in-error
category0..*CodeableConceptproblem-list-item | encounter-diagnosis
severity0..1CodeableConceptMức độ nặng (SNOMED CT)
code1..1CodeableConceptMã chẩn đoán (ICD-10, SNOMED CT)
bodySite0..*CodeableConceptVị trí cơ thể
subject1..1Reference(Patient)Bệnh nhân
encounter0..1Reference(Encounter)Lượt khám liên quan
onset[x]0..1dateTime | Age | Period | Range | stringThời điểm khởi phát
abatement[x]0..1dateTime | Age | Period | Range | stringThời điểm thuyên giảm
stage0..*BackboneElementGiai đoạn bệnh

Ví dụ: Chẩn đoán Tăng huyết áp

{
  "resourceType": "Condition",
  "id": "cond-hypertension-001",
  "clinicalStatus": {
    "coding": [
      {
        "system": "http://terminology.hl7.org/CodeSystem/condition-clinical",
        "code": "active"
      }
    ]
  },
  "verificationStatus": {
    "coding": [
      {
        "system": "http://terminology.hl7.org/CodeSystem/condition-ver-status",
        "code": "confirmed"
      }
    ]
  },
  "category": [
    {
      "coding": [
        {
          "system": "http://terminology.hl7.org/CodeSystem/condition-category",
          "code": "encounter-diagnosis",
          "display": "Encounter Diagnosis"
        }
      ]
    }
  ],
  "severity": {
    "coding": [
      {
        "system": "http://snomed.info/sct",
        "code": "24484000",
        "display": "Severe"
      }
    ]
  },
  "code": {
    "coding": [
      {
        "system": "http://hl7.org/fhir/sid/icd-10",
        "code": "I10",
        "display": "Essential (primary) hypertension"
      },
      {
        "system": "http://snomed.info/sct",
        "code": "38341003",
        "display": "Hypertensive disorder"
      }
    ],
    "text": "Tăng huyết áp nguyên phát"
  },
  "subject": {
    "reference": "Patient/patient-001",
    "display": "Nguyễn Văn A"
  },
  "encounter": {
    "reference": "Encounter/encounter-outpatient-001"
  },
  "onsetDateTime": "2024-06-15",
  "recordedDate": "2025-01-15"
}

Condition Staging (Ung thư)

{
  "resourceType": "Condition",
  "id": "cond-cancer-001",
  "code": {
    "coding": [
      {
        "system": "http://hl7.org/fhir/sid/icd-10",
        "code": "C34.1",
        "display": "Malignant neoplasm of upper lobe, bronchus or lung"
      }
    ],
    "text": "Ung thư phổi thùy trên"
  },
  "subject": {
    "reference": "Patient/patient-003"
  },
  "stage": [
    {
      "summary": {
        "coding": [
          {
            "system": "http://snomed.info/sct",
            "code": "258219007",
            "display": "Stage 2"
          }
        ]
      },
      "type": {
        "coding": [
          {
            "system": "http://snomed.info/sct",
            "code": "260998006",
            "display": "Clinical staging (qualifier value)"
          }
        ]
      }
    }
  ]
}

3. Observation Resource — Kết quả quan sát

Observation là resource linh hoạt nhất trong FHIR — dùng cho vital signs, kết quả xét nghiệm, social history, survey, imaging measurements, và clinical assessments.

Observation Categories

CategoryMô tảVí dụ
vital-signsDấu hiệu sinh tồnHuyết áp, nhịp tim, SpO2, nhiệt độ
laboratoryKết quả xét nghiệmHbA1c, glucose, CBC, lipid panel
imagingKết quả hình ảnhKích thước khối u
social-historyTiền sử xã hộiHút thuốc, uống rượu
surveyBảng khảo sátPHQ-9 (trầm cảm), VAS (đau)
examKhám lâm sàngCân nặng, chiều cao

Ví dụ: Vital Signs — Huyết áp

{
  "resourceType": "Observation",
  "id": "obs-bp-001",
  "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"
      }
    ],
    "text": "Huyết áp"
  },
  "subject": {
    "reference": "Patient/patient-001"
  },
  "encounter": {
    "reference": "Encounter/encounter-outpatient-001"
  },
  "effectiveDateTime": "2025-01-15T08:15:00+07:00",
  "performer": [
    {
      "reference": "Practitioner/practitioner-002",
      "display": "ĐD. Lê Thị C"
    }
  ],
  "component": [
    {
      "code": {
        "coding": [
          {
            "system": "http://loinc.org",
            "code": "8480-6",
            "display": "Systolic blood pressure"
          }
        ]
      },
      "valueQuantity": {
        "value": 145,
        "unit": "mmHg",
        "system": "http://unitsofmeasure.org",
        "code": "mm[Hg]"
      },
      "interpretation": [
        {
          "coding": [
            {
              "system": "http://terminology.hl7.org/CodeSystem/v3-ObservationInterpretation",
              "code": "H",
              "display": "High"
            }
          ]
        }
      ]
    },
    {
      "code": {
        "coding": [
          {
            "system": "http://loinc.org",
            "code": "8462-4",
            "display": "Diastolic blood pressure"
          }
        ]
      },
      "valueQuantity": {
        "value": 92,
        "unit": "mmHg",
        "system": "http://unitsofmeasure.org",
        "code": "mm[Hg]"
      },
      "interpretation": [
        {
          "coding": [
            {
              "system": "http://terminology.hl7.org/CodeSystem/v3-ObservationInterpretation",
              "code": "H",
              "display": "High"
            }
          ]
        }
      ]
    }
  ]
}

Ví dụ: Lab Result — HbA1c

{
  "resourceType": "Observation",
  "id": "obs-hba1c-001",
  "status": "final",
  "category": [
    {
      "coding": [
        {
          "system": "http://terminology.hl7.org/CodeSystem/observation-category",
          "code": "laboratory"
        }
      ]
    }
  ],
  "code": {
    "coding": [
      {
        "system": "http://loinc.org",
        "code": "4548-4",
        "display": "Hemoglobin A1c/Hemoglobin.total in Blood"
      }
    ],
    "text": "HbA1c"
  },
  "subject": {
    "reference": "Patient/patient-001"
  },
  "effectiveDateTime": "2025-01-15",
  "valueQuantity": {
    "value": 7.2,
    "unit": "%",
    "system": "http://unitsofmeasure.org",
    "code": "%"
  },
  "referenceRange": [
    {
      "low": {
        "value": 4.0,
        "unit": "%"
      },
      "high": {
        "value": 5.6,
        "unit": "%"
      },
      "text": "Bình thường: 4.0 - 5.6%"
    }
  ],
  "interpretation": [
    {
      "coding": [
        {
          "system": "http://terminology.hl7.org/CodeSystem/v3-ObservationInterpretation",
          "code": "H",
          "display": "High"
        }
      ],
      "text": "Cao — Gợi ý đái tháo đường kiểm soát chưa tốt"
    }
  ]
}

4. Liên kết Resources qua References


Patient ──────────────────┐
  │                        │
  ▼                        ▼
Encounter ──────────────▶ Condition
  │         diagnosis       │
  │                         │ evidence
  ▼                         ▼
Observation ◀──────────── Observation
(vital signs)              (lab results)

Tất cả các Resources lâm sàng đều liên kết với nhau qua Reference. Encounter chứa reference đến Patient, Condition gắn với Encounter qua element encounter, Observation references đến cả Patient, Encounter, và có thể reference đến Condition.

5. Tổng kết

  • Encounter — Mô tả lượt tương tác (khám ngoại trú, nhập viện, cấp cứu, telehealth)

  • Condition — Chẩn đoán bệnh với ICD-10/SNOMED CT, staging, severity

  • Observation — Resource linh hoạt nhất: vital signs (LOINC), lab results, social history

  • References — Liên kết tạo mạng lưới dữ liệu lâm sàng hoàn chỉnh