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

Lesson 7: DiagnosticReport, Procedure, AllergyIntolerance - Diagnostic Resources

DiagnosticReport (test results, images), Procedure (procedure, surgery), AllergyIntolerance (allergy), ServiceRequest (service request), Specimen (specimen). Diagnostic workflow from requirements to results.

🏗️ Architecture — Lesson 7 Lesson 7: DiagnosticReport, Procedure, AllergyIntolerance - Diagnostic Resources

HL7 FHIR - Basic to Advanced Healthcare Data Standard

Part 2: Core FHIR Resources

xdev.asia

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 — Service request

{
  "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 — Patient sample

{
  "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 — Report the results

DiagnosticReport synthesis of diagnostic results — including blood tests, X-ray images, ultrasound, ECG, etc.

DiagnosticReport structure

ElementCardinalityDescription
status. status1..1registered | partial | preliminary | modified | final | altered | corrected | appended | canceled | entered-in-error
category. category0..*LAB | RAD | PAT | ... (report type)
code1..1Test/report code (LOINC)
subject. subject1..1Reference(Patient)
encounter. encounter0..1Reference(Encounter)
effective[x]0..1Implementation time/duration
issued. issued0..1Time to return results
performer0..*Implementing person/unit
specimen. specimen0..*Reference(Specimen)
result. result0..*Reference(Observation) — result indices
conclusion0..1Comments/conclusion
media. media0..*Attached images

Example: CBC test results

{
  "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 — Procedure / Surgery

{
  "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 — Allergy

{
  "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. Summary

  • ServiceRequest → Specimen → Observation → DiagnosticReport — Complete diagnostic workflow

  • DiagnosticReport — Summarize results, collect many Observations, conclusions, images

  • Procedure — Procedure/surgery with codes SNOMED/CPT, performer, outcome

  • AllergyIntolerance — Drug/food/environmental allergy, reaction, criticality