LOINC tại Việt Nam: chuẩn mã xét nghiệm và quan sát lâm sàng

LOINC (Logical Observation Identifiers Names and Codes) là bộ thuật ngữ quốc tế cho xét nghiệm, quan sát lâm sàng, sinh hiệu và loại tài liệu y tế. Bộ mã do Regenstrief Institute phát hành từ năm 1994; phiên bản 2.82 (24/02/2026) có 109.325 thuật ngữ. Tại Việt Nam, QĐ 1227/QĐ-BYT (11/4/2025) ban hành 2.964 mã chỉ số cận lâm sàng (CLS). Các mã địa phương có thể được ghi song song với LOINC trong FHIR sau khi quan hệ ánh xạ đã được thẩm định cho mục đích sử dụng cụ thể.

Trang này dành cho lập trình viên LIS/HIS đang map kết quả sang FHIR Observation, CIO bệnh viện cần lộ trình thuật ngữ, và bác sĩ muốn hiểu cách một mã LOINC mô tả chính xác một xét nghiệm. Sau khi đọc, bạn sẽ biết khi nào dùng LOINC, khi nào dùng SNOMED CT, và cách kết hợp mã VN nội bộ với LOINC trong cùng một CodeableConcept.

Tóm tắt nhanh

  • LOINC chuẩn hóa cách gọi tên xét nghiệm, quan sát, sinh hiệu và loại tài liệu y tế.
  • Phiên bản 2.82 (24/02/2026) có 109.325 thuật ngữ; miễn phí theo giấy phép LOINC riêng (không phải Apache).
  • Việt Nam: QĐ 1227/QĐ-BYT (11/4/2025) ban hành 2.964 chỉ số đợt 1, gồm Huyết học - Truyền máu, Hóa sinh, Vi sinh, Giải phẫu bệnh và Điện quang/CĐHA.
  • Danh sách Linguistic Variants chính thức của Regenstrief chưa liệt kê tiếng Việt; supplement của VN Core là artifact riêng cho LOINC 2.78, với 89.470 designation tiếng Việt trên không gian 104.054 mã.
  • FHIR R4 ràng buộc Observation.code với LOINC ở mức example; VN Core khuyến nghị bind chặt LOINC cho xét nghiệm khi có thể.
  • ConceptMap CLS→LOINC của VN Core có đích ánh xạ cho đủ 2.964 mã (coverage kỹ thuật 100%), nhưng gồm cả quan hệ wider sinh theo heuristic; không được hiểu là 2.964 ánh xạ tương đương 1-1 đã được xác nhận lâm sàng.

1. LOINC là gì

LOINC viết tắt cho Logical Observation Identifiers Names and Codes. Đây là một bộ thuật ngữ chuẩn hóa do Regenstrief Institute tại Đại học Indiana khởi xướng năm 1994, với mục tiêu duy nhất: trả lời câu hỏi "phép đo này là cái gì" bằng một định danh phổ quát thay vì các mã nội bộ rời rạc của từng phòng xét nghiệm.

Phạm vi LOINC bao phủ ba nhóm chính: kết quả xét nghiệm (huyết học, hóa sinh, vi sinh, miễn dịch, giải phẫu bệnh), quan sát lâm sàng (sinh hiệu, đo đạc nhân trắc, kết quả điện tim, công cụ đánh giá thang điểm), và phân loại tài liệu y tế (loại bản tóm tắt ra viện, loại biên bản hội chẩn). Phiên bản 2.82 phát hành ngày 24/02/2026 chứa 109.325 thuật ngữ, trong đó có cả mã đã ngừng dùng (deprecated) để bảo đảm tương thích ngược.

Trong danh sách Linguistic Variants do Regenstrief công bố (đối chiếu ngày 18/07/2026), chưa có biến thể ngôn ngữ tiếng Việt. VN Core phát hành một CodeSystem supplement riêng cho LOINC 2.78: 89.470 mã có designation[vi] trong không gian 104.054 mã. Supplement này phục vụ hiển thị và tra cứu trong VN Core; không phải biến thể tiếng Việt đã được Regenstrief đưa vào bản phát hành LOINC chính thức, đồng thời chưa theo kịp LOINC 2.82 hiện hành.

2. Cấu trúc một mã LOINC

Một bản ghi LOINC gồm một mã ngắn dạng NNNNN-N (số tự tăng kèm chữ số kiểm tra), một Long Common Name mô tả đầy đủ, một Short Name dùng trong các hệ thống có giới hạn ký tự, và sáu trục ngữ nghĩa. Ví dụ kinh điển — định lượng cholesterol toàn phần trong máu — có dạng:

LOINC code: 2093-3
Long Common Name: Cholesterol [Mass/volume] in Serum or Plasma
Short Name: Cholest SerPl-mCnc
Component: Cholesterol
Property:  MCnc (Mass Concentration)
Time:      Pt (Point in time)
System:    Ser/Plas
Scale:     Qn (Quantitative)
Method:    (none specified)
Class:     CHEM (Chemistry)

2093-3 không gắn với một kit thử cụ thể, một máy phân tích cụ thể hay một đơn vị đo cụ thể. Nó chỉ định nghĩa khái niệm phép đo: nồng độ khối lượng cholesterol trong huyết thanh hoặc huyết tương, tại một thời điểm, trên thang định lượng. Đơn vị (mmol/L, mg/dL) ghi riêng trong Observation.valueQuantity.unit với mã UCUM, không nằm trong LOINC.

3. Sáu trục ngữ nghĩa của LOINC

Tên đầy đủ của một khái niệm LOINC được xây dựng từ sáu trục: Component, Property, Time, System, Scale và Method. Trục Method có thể để trống khi phương pháp không cần thiết để phân biệt khái niệm. Hai mã khác nhau về phương pháp có thể đại diện cho hai khái niệm đo khác nhau; khả năng so sánh hoặc gộp kết quả còn phải xét mẫu bệnh phẩm, đơn vị, khoảng tham chiếu và thẩm định của phòng xét nghiệm.

Trục Câu hỏi trả lời Ví dụ với 2093-3
ComponentĐo chất gì, hiện tượng gì?Cholesterol
PropertyĐại lượng vật lý/hóa học nào?MCnc — nồng độ khối lượng
TimeTại một thời điểm hay cộng dồn theo khoảng?Pt — point in time
SystemMẫu lấy từ đâu?Ser/Plas — huyết thanh hoặc huyết tương
ScaleThang đo nào?Qn — định lượng
MethodPhương pháp đặc thù (nếu cần phân biệt)?Không quy định

Trục Method là tùy chọn nhưng quan trọng khi kết quả phụ thuộc kỹ thuật — ví dụ Glucose [Mass/volume] in Capillary blood by Glucometer (mã 14743-9) khác với Glucose [Mass/volume] in Serum or Plasma (mã 2345-7): cùng đo đường máu nhưng giá trị tham chiếu, độ chính xác và ý nghĩa lâm sàng không đồng nhất, không nên gộp chung trong báo cáo.

4. LOINC và SNOMED CT — phân biệt và bổ sung

LOINC và SNOMED CT thường bị nhầm là cạnh tranh, nhưng thực ra hai bộ mã chia nhau hai miền khác nhau. Quy ước trong SNOMED CT và FHIR R4 rất rõ:

Tiêu chí LOINC SNOMED CT
MiềnTên xét nghiệm và quan sát ("đo cái gì")Khái niệm lâm sàng tổng quát: bệnh, triệu chứng, thủ thuật, giải phẫu
Mức độ chi tiếtSáu trục, mỗi mã là một phép đo cụ thểMạng lưới khái niệm với quan hệ cha-con phong phú
Thuộc tính FHIR điển hìnhObservation.code, DiagnosticReport.codeCondition.code, AllergyIntolerance.code, Procedure.code, BodySite
Giấy phépDùng theo giấy phép LOINCĐiều kiện phụ thuộc lãnh thổ thành viên và chính sách cấp phép của SNOMED International

Trong VN Core, LOINC là lựa chọn ưu tiên để mô tả tên xét nghiệm hoặc quan sát khi có mã phù hợp. Chẩn đoán có thể mang đồng thời SNOMED CT để biểu đạt chi tiết lâm sàng và ICD-10 VN cho các quy trình báo cáo hoặc thanh toán yêu cầu bộ mã này. Việc kết luận chẩn đoán vẫn dựa trên đánh giá lâm sàng; một kết quả xét nghiệm không tự động tạo ra chẩn đoán.

5. Giấy phép sử dụng

LOINC miễn phí cho cả mục đích thương mại và phi thương mại trên toàn thế giới, theo giấy phép LOINC riêng của Regenstrief Institute. Đây không phải giấy phép Apache hay MIT — giấy phép LOINC có một số điều kiện đặc thù: phải ghi nguồn (attribution), không được biến LOINC thành cơ sở cho một bộ mã cạnh tranh, không được tự ý đổi nghĩa các trường ngữ nghĩa, và nếu dịch ngôn ngữ thì bản dịch phải gửi lại Regenstrief để xét đưa vào bản phát hành chính thức.

Để tải bản phân phối đầy đủ, cần đăng ký tài khoản miễn phí trên loinc.org/downloads. Khi triển khai, bệnh viện và nhà cung cấp LIS nên chọn mã LOINC dựa trên đủ sáu trục và thẩm định với chuyên gia xét nghiệm; mã nội bộ hoặc mã CLS có thể được ghi song song trong CodeableConcept.coding để duy trì truy nguyên dữ liệu nguồn.

6. QĐ 1227/QĐ-BYT — 2.964 chỉ số đợt 1

Quyết định QĐ 1227/QĐ-BYT ngày 11/4/2025 ban hành "Danh mục mã dùng chung chỉ số cận lâm sàng đợt 1", với 2.964 chỉ số được phân bổ theo năm nhóm chuyên khoa. Danh mục cung cấp lớp mã dùng chung trong nước; việc trao đổi qua FHIR còn cần profile, đơn vị UCUM, metadata mẫu bệnh phẩm và ánh xạ thuật ngữ phù hợp.

Nhóm chuyên khoa Số chỉ số
Huyết học - Truyền máu1.022
Hóa sinh447
Vi sinh174
Giải phẫu bệnh81
Điện quang / Chẩn đoán hình ảnh1.240
Tổng cộng2.964

VN Core tạo đích LOINC cho đủ 2.964 mã CLS trong ConceptMap vn-cm-cls-to-loinc (coverage kỹ thuật 100%): 1.404 quan hệ equivalent và 1.560 quan hệ wider. Phân loại này được sinh theo heuristic từ dữ liệu nguồn và cần chuyên gia thuật ngữ, xét nghiệm hoặc chẩn đoán hình ảnh rà soát trước khi dùng cho chuyển đổi tự động hay quyết định lâm sàng. Coverage 100% chỉ nói rằng mỗi mã nguồn có một đích kỹ thuật; không chứng minh tương đương ngữ nghĩa 1-1.

VN Core triển khai danh mục này thành CodeSystem vn-cls-cs (canonical http://fhir.hl7.org.vn/core/CodeSystem/vn-cls-cs). Ví dụ mục dành cho cholesterol toàn phần trong máu có mã 1010053, display "Định lượng Cholesterol toàn phần (máu)", định nghĩa ghi rõ LOINC tương đương là 2093-3.

7. Tích hợp FHIR Observation — ví dụ Việt Nam

FHIR R4 ràng buộc Observation.code với LOINC ở mức example binding — nghĩa là LOINC được khuyến nghị nhưng không bắt buộc. Profile VNCoreObservationLab trong VN Core thắt chặt lên extensible cho xét nghiệm: phải dùng LOINC khi tồn tại mã phù hợp, được phép bổ sung mã địa phương song song. Quy ước dưới đây minh họa một bản ghi định lượng cholesterol toàn phần với hai mã đồng thời.

{
  "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"
      },
      {
        "system": "http://fhir.hl7.org.vn/core/CodeSystem/vn-cls-cs",
        "code": "1010053",
        "display": "Định lượng Cholesterol toàn phần (máu)"
      }
    ],
    "text": "Cholesterol toàn phần"
  },
  "subject": { "reference": "Patient/vn-001" },
  "effectiveDateTime": "2026-04-15T08:00:00+07:00",
  "valueQuantity": {
    "value": 5.2,
    "unit": "mmol/L",
    "system": "http://unitsofmeasure.org",
    "code": "mmol/L"
  },
  "referenceRange": [{
    "low":  { "value": 3.0, "unit": "mmol/L", "system": "http://unitsofmeasure.org", "code": "mmol/L" },
    "high": { "value": 5.2, "unit": "mmol/L", "system": "http://unitsofmeasure.org", "code": "mmol/L" }
  }]
}

Ba điểm cần lưu ý trong ví dụ trên: (1) category.coding.system phải là canonical http://terminology.hl7.org/CodeSystem/observation-category, không phải URL rút gọn; (2) valueQuantity dùng UCUM (mmol/L) qua system chuẩn http://unitsofmeasure.org; (3) URL CodeSystem nội địa kết thúc bằng hậu tố -cs theo quy ước đặt tên VN Core — sai một ký tự sẽ khiến validator không resolve được thuật ngữ.

Khi chưa có mã LOINC phù hợp đã được thẩm định: giữ mã CLS hoặc mã LIS nguồn trong Observation.code.coding và dùng code.text để mô tả phép đo. Có thể bổ sung coding LOINC ở phiên bản dữ liệu hoặc lớp chuyển đổi sau, nhưng phải giữ nguyên provenance và không thay thế mã nguồn một cách âm thầm.

8. Công cụ: RELMA và FHIR ConceptMap

RELMA (Regenstrief LOINC Mapping Assistant) là công cụ desktop do Regenstrief phát hành, hỗ trợ rà soát mã xét nghiệm nội bộ của LIS với các ứng viên LOINC, xem sáu trục và xuất dữ liệu ánh xạ. Gợi ý của công cụ là đầu vào cho quy trình thẩm định, không thay thế việc kiểm tra specimen, method, property, scale, đơn vị và ngữ cảnh sử dụng tại phòng xét nghiệm.

Ánh xạ đã được quản trị có thể đóng gói thành tài nguyên FHIR ConceptMap để công bố phiên bản, quan hệ ngữ nghĩa và truy nguyên nguồn. VN Core v0.9.0 có vn-cm-cls-to-loinc ở trạng thái draft cho hướng vn-cls-cs sang http://loinc.org. Terminology server có thể cung cấp thao tác $translate, nhưng client phải đọc quan hệ equivalence, phiên bản ConceptMap và cảnh báo thẩm định; không được coi mọi kết quả trả về là chuyển đổi tương đương.

9. Câu hỏi thường gặp

Có bắt buộc đổi tất cả mã xét nghiệm sang LOINC không?

Không. VN Core chấp nhận giữ mã nội bộ (mã LIS, mã CLS Việt Nam) trong cùng CodeableConcept.coding với LOINC. Chỉ ghi LOINC khi đã chọn và thẩm định mã phù hợp; dual coding giúp đối tác truy nguyên mã nguồn nhưng không tự bảo đảm khả năng liên thông ngữ nghĩa.

Hai kit xét nghiệm khác nhau có cùng mã LOINC không?

Có, nếu năm trục Component, Property, Time, System, Scale giống nhau và phương pháp đo cùng tương đương về kết quả. Nếu phương pháp khác làm thay đổi giá trị tham chiếu — ví dụ test nhanh tại giường so với máy tự động trung tâm — LOINC sẽ tách thành hai mã riêng để tránh trộn lẫn dữ liệu không so sánh được.

Khi nào Việt Nam có bản dịch LOINC chính thức?

Tới ngày 18/07/2026, danh sách Linguistic Variants chính thức của Regenstrief chưa liệt kê tiếng Việt. VN Core có supplement riêng cho LOINC 2.78 với 89.470 designation tiếng Việt trên 104.054 mã; đây không phải biến thể tiếng Việt trong bản phát hành chính thức của Regenstrief và cần được quản trị phiên bản tách biệt với LOINC 2.82.

LOINC có dùng cho dữ liệu chẩn đoán hình ảnh không?

Có, ở mức tên loại nghiên cứu hình ảnh ("CT ngực có cản quang") nhưng không thay thế DICOM cho ảnh và metadata kỹ thuật. Trong FHIR Observation/DiagnosticReport, LOINC mô tả loại báo cáo; ảnh thực tế tham chiếu qua ImagingStudy tới hệ PACS/DICOM riêng.

Tham khảo