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

Bài 7: DiagnosticReport, Procedure, AllergyIntolerance - Resources chẩn đoán

DiagnosticReport (kết quả xét nghiệm, hình ảnh), Procedure (thủ thuật, phẫu thuật), AllergyIntolerance (dị ứng), ServiceRequest (yêu cầu dịch vụ), Specimen (mẫu bệnh phẩm). Workflow chẩn đoán từ yêu cầu đến kết quả.

🏗️ Kiến trúc — Bài 7 Bài 7: DiagnosticReport, Procedure, AllergyIntolerance - Resources chẩn đoán

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. Diagnostic Workflow


Bác sĩ yêu cầu         Lấy mẫu          Phòng xét nghiệm     Trả kết quả
      │                    │                    │                    │
      ▼                    ▼                    ▼                    ▼
ServiceRequest ──▶    Specimen ──▶     Observation(s) ──▶  DiagnosticReport
(order)              (bệnh phẩm)       (từng chỉ số)      (báo cáo tổng hợp)

2. ServiceRequest — Yêu cầu dịch vụ

{
  "resourceType": "ServiceRequest",
  "id": "sr-cbc-001",
  "status": "completed",
  "intent": "order",
  "category": [
    {
      "coding": [
        {
          "system": "http://snomed.info/sct",
          "code": "108252007",
          "display": "Laboratory procedure"
        }
      ]
    }
  ],
  "code": {
    "coding": [
      {
        "system": "http://loinc.org",
        "code": "58410-2",
        "display": "Complete blood count (CBC) panel - Blood by Automated count"
      }
    ],
    "text": "Công thức máu toàn phần"
  },
  "subject": {
    "reference": "Patient/patient-001"
  },
  "encounter": {
    "reference": "Encounter/encounter-outpatient-001"
  },
  "authoredOn": "2025-01-15T08:20:00+07:00",
  "requester": {
    "reference": "Practitioner/practitioner-001",
    "display": "BS. Trần Thị B"
  },
  "specimen": [
    {
      "reference": "Specimen/specimen-blood-001"
    }
  ]
}

3. Specimen — Mẫu bệnh phẩm

{
  "resourceType": "Specimen",
  "id": "specimen-blood-001",
  "type": {
    "coding": [
      {
        "system": "http://snomed.info/sct",
        "code": "119297000",
        "display": "Blood specimen"
      }
    ],
    "text": "Mẫu máu tĩnh mạch"
  },
  "subject": {
    "reference": "Patient/patient-001"
  },
  "receivedTime": "2025-01-15T08:30:00+07:00",
  "collection": {
    "collectedDateTime": "2025-01-15T08:25:00+07:00",
    "quantity": {
      "value": 5,
      "unit": "mL"
    },
    "bodySite": {
      "concept": {
        "coding": [
          {
            "system": "http://snomed.info/sct",
            "code": "49852007",
            "display": "Structure of median cubital vein"
          }
        ],
        "text": "Tĩnh mạch giữa khuỷu tay"
      }
    }
  },
  "container": [
    {
      "device": {
        "concept": {
          "coding": [
            {
              "system": "http://snomed.info/sct",
              "code": "706050005",
              "display": "EDTA blood collection tube"
            }
          ],
          "text": "Ống EDTA (nắp tím)"
        }
      }
    }
  ]
}

4. DiagnosticReport — Báo cáo kết quả

DiagnosticReport tổng hợp kết quả chẩn đoán — bao gồm xét nghiệm máu, hình ảnh X-quang, siêu âm, ECG, v.v.

Cấu trúc DiagnosticReport

ElementCardinalityMô tả
status1..1registered | partial | preliminary | modified | final | amended | corrected | appended | cancelled | entered-in-error
category0..*LAB | RAD | PAT | ... (loại báo cáo)
code1..1Mã xét nghiệm / báo cáo (LOINC)
subject1..1Reference(Patient)
encounter0..1Reference(Encounter)
effective[x]0..1Thời điểm/khoảng thời gian thực hiện
issued0..1Thời điểm trả kết quả
performer0..*Người/đơn vị thực hiện
specimen0..*Reference(Specimen)
result0..*Reference(Observation) — các chỉ số kết quả
conclusion0..1Nhận xét / kết luận
media0..*Hình ảnh đính kèm

Ví dụ: Kết quả xét nghiệm CBC

{
  "resourceType": "DiagnosticReport",
  "id": "dr-cbc-001",
  "status": "final",
  "category": [
    {
      "coding": [
        {
          "system": "http://terminology.hl7.org/CodeSystem/v2-0074",
          "code": "LAB",
          "display": "Laboratory"
        }
      ]
    }
  ],
  "code": {
    "coding": [
      {
        "system": "http://loinc.org",
        "code": "58410-2",
        "display": "CBC panel - Blood by Automated count"
      }
    ],
    "text": "Công thức máu toàn phần"
  },
  "subject": {
    "reference": "Patient/patient-001"
  },
  "encounter": {
    "reference": "Encounter/encounter-outpatient-001"
  },
  "effectiveDateTime": "2025-01-15T09:00:00+07:00",
  "issued": "2025-01-15T10:30:00+07:00",
  "performer": [
    {
      "reference": "Organization/org-lab-001",
      "display": "Khoa Xét nghiệm - BVĐK TW"
    }
  ],
  "specimen": [
    {
      "reference": "Specimen/specimen-blood-001"
    }
  ],
  "result": [
    {
      "reference": "Observation/obs-wbc-001",
      "display": "WBC: 8.5 x10^9/L"
    },
    {
      "reference": "Observation/obs-rbc-001",
      "display": "RBC: 4.8 x10^12/L"
    },
    {
      "reference": "Observation/obs-hgb-001",
      "display": "Hemoglobin: 14.2 g/dL"
    },
    {
      "reference": "Observation/obs-plt-001",
      "display": "Platelets: 250 x10^9/L"
    }
  ],
  "conclusion": "Công thức máu trong giới hạn bình thường. Không phát hiện bất thường."
}

5. Procedure — Thủ thuật / Phẫu thuật

{
  "resourceType": "Procedure",
  "id": "proc-appendectomy-001",
  "status": "completed",
  "category": [
    {
      "coding": [
        {
          "system": "http://snomed.info/sct",
          "code": "387713003",
          "display": "Surgical procedure"
        }
      ]
    }
  ],
  "code": {
    "coding": [
      {
        "system": "http://snomed.info/sct",
        "code": "80146002",
        "display": "Appendectomy"
      },
      {
        "system": "http://www.ama-assn.org/go/cpt",
        "code": "44970",
        "display": "Laparoscopic appendectomy"
      }
    ],
    "text": "Cắt ruột thừa nội soi"
  },
  "subject": {
    "reference": "Patient/patient-004"
  },
  "encounter": {
    "reference": "Encounter/encounter-inpatient-002"
  },
  "occurrencePeriod": {
    "start": "2025-01-14T14:00:00+07:00",
    "end": "2025-01-14T15:30:00+07:00"
  },
  "performer": [
    {
      "function": {
        "coding": [
          {
            "system": "http://snomed.info/sct",
            "code": "304292004",
            "display": "Surgeon"
          }
        ]
      },
      "actor": {
        "reference": "Practitioner/practitioner-surgeon-001",
        "display": "BS. Phạm Quốc D"
      }
    }
  ],
  "reason": [
    {
      "reference": {
        "reference": "Condition/cond-appendicitis-001",
        "display": "Viêm ruột thừa cấp"
      }
    }
  ],
  "bodySite": [
    {
      "coding": [
        {
          "system": "http://snomed.info/sct",
          "code": "66754008",
          "display": "Appendix structure"
        }
      ]
    }
  ],
  "outcome": {
    "coding": [
      {
        "system": "http://snomed.info/sct",
        "code": "385669000",
        "display": "Successful"
      }
    ],
    "text": "Phẫu thuật thành công, không biến chứng"
  }
}

6. AllergyIntolerance — Dị ứng

{
  "resourceType": "AllergyIntolerance",
  "id": "allergy-penicillin-001",
  "clinicalStatus": {
    "coding": [
      {
        "system": "http://terminology.hl7.org/CodeSystem/allergyintolerance-clinical",
        "code": "active"
      }
    ]
  },
  "verificationStatus": {
    "coding": [
      {
        "system": "http://terminology.hl7.org/CodeSystem/allergyintolerance-verification",
        "code": "confirmed"
      }
    ]
  },
  "type": "allergy",
  "category": ["medication"],
  "criticality": "high",
  "code": {
    "coding": [
      {
        "system": "http://snomed.info/sct",
        "code": "764146007",
        "display": "Penicillin"
      }
    ],
    "text": "Dị ứng Penicillin"
  },
  "patient": {
    "reference": "Patient/patient-001"
  },
  "onsetDateTime": "2020-05-10",
  "recordedDate": "2020-05-12",
  "recorder": {
    "reference": "Practitioner/practitioner-001"
  },
  "reaction": [
    {
      "substance": {
        "coding": [
          {
            "system": "http://snomed.info/sct",
            "code": "764146007",
            "display": "Penicillin"
          }
        ]
      },
      "manifestation": [
        {
          "concept": {
            "coding": [
              {
                "system": "http://snomed.info/sct",
                "code": "271807003",
                "display": "Skin rash"
              }
            ],
            "text": "Phát ban da"
          }
        },
        {
          "concept": {
            "coding": [
              {
                "system": "http://snomed.info/sct",
                "code": "267036007",
                "display": "Dyspnea"
              }
            ],
            "text": "Khó thở"
          }
        }
      ],
      "severity": "severe"
    }
  ]
}

7. Tổng kết

  • ServiceRequest → Specimen → Observation → DiagnosticReport — Workflow chẩn đoán hoàn chỉnh

  • DiagnosticReport — Tổng hợp kết quả, gom nhiều Observations, kết luận, hình ảnh

  • Procedure — Thủ thuật/phẫu thuật với mã SNOMED/CPT, performer, outcome

  • AllergyIntolerance — Dị ứng thuốc/thực phẩm/môi trường, reaction, criticality