SNOMED CT tại Việt Nam: lộ trình bản hóa và áp dụng

SNOMED CT là bộ thuật ngữ lâm sàng lớn nhất thế giới với khoảng 350.000 concept đang hoạt động. Việt Nam đã hoàn tất ba đợt ban hành đầu tiên trong năm 2025 với tổng cộng 77.393 mã, mở đường cho Condition.code, Observation.code và AllergyIntolerance.code trong VN Core gắn kết với chuẩn lâm sàng quốc tế.

Trang này tổng hợp định nghĩa, kiến trúc concept, so sánh với ICD-10, lộ trình bản hóa của Bộ Y tế, cách binding trong FHIR VN Core và bộ tooling thực tế (Snowstorm, Ontoserver). Đối tượng đọc: kỹ sư FHIR, kiến trúc sư hệ thống y tế, cán bộ quản lý chuẩn dữ liệu và bác sĩ lâm sàng quan tâm thuật ngữ.

Tóm tắt nhanh

  • Ba đợt ban hành 2025: QĐ 2427/QĐ-BYT (25/07/2025) cho Body Structure 35.889 mã, QĐ 2493/QĐ-BYT (04/08/2025) cho Morphologic Abnormality 5.155 mã, QĐ 2805/QĐ-BYT (04/09/2025) cho Clinical Finding và Allergy 36.349 mã.
  • Tổng cộng 77.393 concept đã có bản dịch tiếng Việt và mã quốc gia VN, chiếm khoảng 22% tổng kho SNOMED CT International.
  • Tại 04/2026, Việt Nam chưa phải hội viên quốc gia của SNOMED International; lộ trình membership đang được triển khai song song với mở rộng phạm vi bản hóa.
  • Trong VN Core, Condition.code và AllergyIntolerance.code bind extensible vào ValueSet chứa coding với system http://snomed.info/sct, không phải URI extension VN.
  • Tooling tham chiếu: Snowstorm (mã nguồn mở của SNOMED International) và Ontoserver (CSIRO, thương mại) cho terminology server hỗ trợ ECL.

1. SNOMED CT là gì

SNOMED CT là viết tắt của Systematized Nomenclature of Medicine — Clinical Terms, bộ thuật ngữ lâm sàng có cấu trúc và đa thứ bậc do tổ chức phi lợi nhuận SNOMED International quản trị. Bản phát hành quốc tế tháng 7 năm 2024 chứa khoảng 350.000 concept đang hoạt động, bao phủ chẩn đoán, triệu chứng, thủ thuật, sản phẩm dược, vi sinh vật, vị trí giải phẫu và hàng chục lĩnh vực phụ trợ.

SNOMED International là tổ chức phi lợi nhuận đăng ký tại England and Wales, trụ sở tại London, được hình thành từ sáp nhập giữa CAP của Mỹ và NHS của Anh năm 2007. Tên gọi cũ "International Health Terminology Standards Development Organisation" (IHTSDO) đã được rút gọn thành SNOMED International từ năm 2017. Đan Mạch là một trong các thành viên sáng lập, không phải nơi đặt trụ sở hiện nay.

Bộ mã hỗ trợ đa ngôn ngữ với các bản dịch hoặc bản hóa của Tây Ban Nha, Pháp, Đan Mạch, Hà Lan, Thụy Điển, Bồ Đào Nha, Đức, Phần Lan, Na Uy, Estonia, các quốc gia châu Á như Hàn Quốc, Singapore, Australia và gần đây là Việt Nam. Với độ phủ lâm sàng sâu, SNOMED CT được xem là chuẩn de facto cho mã hóa nội dung bệnh án điện tử ở các hệ thống y tế phát triển.

2. Cấu trúc concept và hierarchy

Mỗi concept SNOMED CT được định danh bởi SCTID, một số nguyên duy nhất, ví dụ 38341003 tương ứng "Hypertensive disorder". Concept đi kèm tập description (Fully Specified Name và các Synonym), tập relationship định nghĩa quan hệ với các concept khác và metadata module xác định nguồn phát hành.

Concept 38341003 |Hypertensive disorder|
  description[]
    FSN     "Hypertensive disorder, systemic arterial (disorder)"
    Synonym "Hypertension"
    Synonym "HTN"
  relationship[]
    IS-A             → 64572001  |Disease|
    Finding site     → 113257007 |Cardiovascular system structure|
  module
    900000000000207008 |SNOMED CT core|

Quan hệ IS-A tạo thành cây đa kế thừa, cho phép một concept thuộc nhiều nhánh cha. Bên cạnh đó, các thuộc tính như Finding site, Causative agent, Associated morphology tạo thành mô hình post-coordination giàu ngữ nghĩa, vượt xa các bộ phân loại tuyến tính.

Phiên bản quốc tế chia kho concept thành 19 hierarchy gốc, bao gồm Body Structure, Clinical Finding, Procedure, Substance, Pharmaceutical / Biologic Product, Observable Entity, Specimen, Physical Object, Physical Force, Event, Environment / Geographical Location, Social Context, Situation with Explicit Context, Staging and Scales, Qualifier Value, Record Artifact, SNOMED CT Model Component, Special Concept và Organism. Lưu ý "Disorder" không phải hierarchy gốc; các concept disorder hay diagnosis là sub-tree nằm trong Clinical Finding.

3. SNOMED CT so với ICD-10

ICD-10 và SNOMED CT phục vụ hai mục tiêu khác nhau và bổ sung cho nhau, không thay thế. ICD-10 là bộ phân loại dùng cho thống kê bệnh tật, báo cáo dịch tễ và thanh toán bảo hiểm; SNOMED CT là thuật ngữ lâm sàng dùng để ghi chép sự kiện y khoa với độ chính xác cao.

Tiêu chí SNOMED CT ICD-10
Mục đích Ghi chép lâm sàng, hỗ trợ quyết định Phân loại bệnh, thanh toán BHYT
Quy mô ~350.000 concept ~14.000 mã
Cấu trúc Đa kế thừa, post-coordination Phân loại đơn cấp
Chu kỳ phát hành 6 tháng (1/1 và 1/7) Bản WHO ổn định, sửa đổi định kỳ
Tại Việt Nam 3 đợt bản hóa 2025 (QĐ 2427, 2493, 2805) QĐ 4469/QĐ-BYT (28/10/2020)
Use case FHIR Condition.code, Observation.code, BodyStructure Condition.code (billing), thống kê

Thực tiễn tốt nhất trong FHIR VN Core là gửi đồng thời cả hai coding trong cùng một CodeableConcept. ICD-10 đảm bảo nghĩa vụ thanh toán BHYT theo QĐ 4469/QĐ-BYT, còn SNOMED CT giữ ngữ nghĩa lâm sàng giàu thông tin cho hệ thống hỗ trợ quyết định và phân tích dữ liệu.

{
  "resourceType": "Condition",
  "subject": { "reference": "Patient/example" },
  "code": {
    "coding": [
      {
        "system": "http://snomed.info/sct",
        "code": "38341003",
        "display": "Hypertensive disorder"
      },
      {
        "system": "http://hl7.org/fhir/sid/icd-10",
        "code": "I10",
        "display": "Essential (primary) hypertension"
      },
      {
        "system": "http://fhir.hl7.org.vn/core/CodeSystem/vn-icd10-cs",
        "code": "I10",
        "display": "Tăng huyết áp vô căn (nguyên phát)"
      }
    ]
  }
}

4. Membership và bản quyền

SNOMED CT vận hành theo mô hình hội viên. Quốc gia tham gia với tư cách Member trả phí hằng năm tính theo GDP và quy mô dân số, sau đó cấp phát quyền sử dụng miễn phí cho mọi tổ chức trong nước. Các nhóm không phải Member có thể đăng ký Affiliate License để dùng giới hạn cho nghiên cứu, phát triển hoặc thương mại quy mô nhỏ.

Tại tháng 04/2026, Việt Nam chưa nằm trong danh sách 50+ Member của SNOMED International. Bộ Y tế đang triển khai song song hai luồng công việc: bản hóa nội dung qua các Quyết định ban hành và xúc tiến thủ tục đăng ký hội viên quốc gia. Trong giai đoạn chuyển tiếp, các tổ chức trong nước có thể sử dụng nội dung tiếng Việt do Bộ Y tế công bố và liên hệ SNOMED International để xin Affiliate License cho hệ thống production.

Một lựa chọn khác là sử dụng tập con SNOMED CT IPS Terminology, được SNOMED International phát hành theo giấy phép CC-BY-4.0 và miễn phí cho mọi mục đích. IPS Terminology cung cấp khoảng 15.000 concept dùng cho hồ sơ tóm tắt bệnh nhân quốc tế, đủ rộng để bắt đầu các use case như AllergyIntolerance khi chưa có membership.

5. Lộ trình bản hóa Việt Nam

Bộ Y tế đặt nền móng pháp lý qua Quyết định 1928/QĐ-BYT (2023) về Kiến trúc Chính phủ điện tử Y tế phiên bản 2.1, trong đó SNOMED CT được xác lập là một trong những bộ mã thuật ngữ chuẩn quốc gia. Năm 2025 đánh dấu chuyển động thực sự với ba đợt ban hành liên tiếp.

Đợt Văn bản Phạm vi Số concept
1 QĐ 2427/QĐ-BYT (25/07/2025) Body Structure — cấu trúc giải phẫu 35.889
2 QĐ 2493/QĐ-BYT (04/08/2025) Morphologic Abnormality — bất thường hình thái 5.155
3 QĐ 2805/QĐ-BYT (04/09/2025) Clinical Finding (35.022) + Allergy (1.327) 36.349
Tổng cộng đã bản hóa 77.393

Mỗi concept trong gói bản hóa có bốn trường lõi: vn_code mã quốc gia do Bộ Y tế cấp, snomed_ct_id trùng với SCTID quốc tế, name_vn tên tiếng Việt và name_en tên tiếng Anh giữ nguyên từ bản gốc. Cách tổ chức này tránh tạo phân nhánh khác biệt so với SNOMED CT International, đồng thời cho phép truy ngược để giao tiếp xuyên biên giới.

Định hướng tiếp theo của lộ trình bản hóa, theo các tài liệu định hướng của Bộ Y tế, sẽ mở rộng sang Procedure, Pharmaceutical Product, Substance, Observable Entity và Specimen. Mục tiêu dài hạn là thiết lập National Release Center, vận hành extension SNOMED CT VN đầy đủ và đăng ký hội viên quốc gia. OmiGroup đề xuất các đợt sau ưu tiên Procedure để hỗ trợ Procedure.code và DiagnosticReport.code, vì đây là hai use case có khối lượng dữ liệu lớn nhất trong bệnh án điện tử theo Thông tư 13/2025/TT-BYT.

6. Phạm vi đã bản hóa

Trong VN Core, kho 77.393 concept được khai báo qua CodeSystem VNSNOMEDSubsetCS với canonical http://fhir.hl7.org.vn/core/CodeSystem/vn-snomed-subset-cs. Theo thực hành tốt của KR Core, CodeSystem này dùng content = #not-present để chỉ giữ metadata wrapper trên IG public, còn dữ liệu chi tiết phân phối qua artifact JSON trong package hl7.fhir.vn.terminology.clinical.

Lưu ý cách dùng coding

Khi gửi resource ra ngoài VN hoặc sang hệ thống quốc tế, dùng system = http://snomed.info/sct kèm code = snomed_ct_id để tương thích SNOMED CT International. Trường vn_code là mã quản lý nội bộ của Bộ Y tế, không dùng cho coding FHIR; display có thể chọn name_vn hoặc name_en tùy ngữ cảnh hiển thị.

VN Core đính kèm các ValueSet đồng hành để binding chính xác theo bối cảnh: vn-body-site-vs cho Procedure.bodySite và Condition.bodySite, vn-condition-code-vs cho Condition.code, vn-allergy-code-vs cho AllergyIntolerance.code. Trang đính chính bản dịch SNOMED CT VN được phát hành riêng trên IG để cộng đồng phản hồi sai sót.

7. Tích hợp với FHIR VN Core

Profile VNCoreCondition bind code vào vn-condition-code-vs ở mức extensible, cho phép gửi đồng thời ICD-10 (bắt buộc theo QĐ 4469/QĐ-BYT) và SNOMED CT (khuyến khích). Profile VNCoreAllergyIntolerance dùng SNOMED CT IPS Terminology cho code, cũng ở mức extensible để tận dụng giấy phép CC-BY-4.0 miễn phí khi VN chưa có hội viên chính thức.

// VNCoreCondition.fsh — extract
* code 1..1 MS
* code from $vn-condition-code-vs (extensible)

// VNCoreAllergyIntolerance.fsh — extract
* code 1..1 MS
* code from $vn-allergy-code-vs (extensible)

// VN Body Site cho Condition.bodySite
* bodySite from $vn-body-site-vs (preferred)

Bộ binding extensible cho phép hệ thống fallback về ICD-10 hoặc text mô tả nếu chưa có concept SNOMED phù hợp, đồng thời vẫn báo cáo conformance khi đã có. Đối với hệ thống yêu cầu mã hóa song song để báo cáo BHYT, profile VNCoreConditionDiagnosis mở rộng VNCoreCondition đặt ICD-10 ở vai trò bắt buộc và SNOMED CT ở vai trò tùy chọn nhưng khuyến khích.

Một CodeableConcept tốt nên có ít nhất một coding với system = http://snomed.info/sct nếu concept đó đã thuộc 77.393 mã đã ban hành. Đối với chẩn đoán phục vụ thanh toán BHYT, kèm thêm coding ICD-10 VN để khớp QĐ 3176/QĐ-BYT về chuẩn dữ liệu đầu ra. Chuỗi hai hoặc ba coding trong một CodeableConcept là pattern quen thuộc của các IG mạnh như IPS, US Core và JP Core.

8. ECL — ngôn ngữ truy vấn

Expression Constraint Language (ECL) là ngôn ngữ truy vấn chính thức của SNOMED International, cho phép định nghĩa subset concept dựa trên quan hệ trong cây thuật ngữ. ECL được dùng để xây dựng ValueSet động, lọc concept theo thuộc tính và viết rule kiểm tra ngữ nghĩa.

// Ví dụ ECL
< 38341003 |Hypertensive disorder|
   // mọi concept descendant (không bao gồm chính nó)

<< 38341003 |Hypertensive disorder|
   // descendant kèm chính concept

< 64572001 |Disease| : 363698007 |Finding site| = << 80891009 |Heart structure|
   // Disease có Finding site là Heart hoặc descendant của Heart

Trong FHIR R4, ECL được lồng vào ValueSet thông qua filter operator. VN Core sử dụng cú pháp chuẩn của FHIR với descendent-of hoặc is-a, lưu ý spelling theo đúng spec FHIR R4 (descendent, không phải descendant).

Ví dụ minh hoạ (không phải artifact thực tế của VN Core):

ValueSet: ExampleHypertensionVS
Id: example-hypertension-vs
* include codes from system http://snomed.info/sct
    where concept descendent-of #38341003

Khi terminology server hỗ trợ ECL gốc (Snowstorm và Ontoserver đều hỗ trợ), bạn có thể truyền ECL phức tạp qua tham số filter của $expand, ví dụ filter=<<233604007|Pneumonia|. Bộ tham số này được dùng phổ biến trong các ứng dụng nhập liệu lâm sàng để gợi ý concept phù hợp ngữ cảnh.

9. Tooling Snowstorm và Ontoserver

Hai terminology server thường gặp khi triển khai SNOMED CT trong FHIR là Snowstorm và Ontoserver. Snowstorm do SNOMED International phát triển và phát hành mã nguồn mở theo giấy phép Apache 2.0 trên GitHub tại github.com/IHTSDO/snowstorm. Snowstorm hỗ trợ ECL đầy đủ, FHIR Terminology Service operations $lookup, $validate-code, $expand, $translate và là engine chạy chính SNOMED Browser.

Ontoserver do CSIRO của Australia phát triển và phát hành thương mại. Ontoserver có ưu điểm hiệu năng cao, hỗ trợ multi-tenant và tích hợp sẵn với LOINC, ICD-10, ICD-11, AMT (Australian Medicines Terminology). Đây là lựa chọn phổ biến cho các quốc gia membership SNOMED có ngân sách triển khai lớn.

Với dự án nguồn mở hoặc giai đoạn đầu, HAPI FHIR cung cấp implementation JPA cho terminology service và hỗ trợ một phần SNOMED CT (lookup và validation cơ bản, không có ECL native). Nếu use case yêu cầu ECL phức tạp, lựa chọn an toàn là cài Snowstorm sidecar và để HAPI gọi qua FHIR Terminology Service.

OmiGroup hiện vận hành Snowstorm nội bộ để phục vụ build và validation IG VN Core. Hệ thống được preload bằng artifact JSON từ package hl7.fhir.vn.terminology.clinical đồng bộ với 3 đợt QĐ BYT, giúp test ValueSet expansion đúng theo nội dung Bộ Y tế đã ban hành.

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

Dùng SNOMED CT có miễn phí ở Việt Nam không?

Nội dung Bộ Y tế ban hành qua QĐ 2427, 2493, 2805 năm 2025 được phát hành để cộng đồng y tế trong nước sử dụng theo định hướng của Bộ. Tuy nhiên SCTID quốc tế thuộc bản quyền SNOMED International và cần Affiliate License hoặc membership quốc gia khi dùng cho hệ thống production. Các tổ chức nên rà soát kỹ điều khoản với SNOMED International cho từng tình huống.

ICD-10 đã đủ cho VN Core chưa?

Cho mục đích thanh toán BHYT và thống kê dịch tễ thì ICD-10 VN theo QĐ 4469/QĐ-BYT vẫn là yêu cầu pháp lý. Cho ghi chép lâm sàng đầy đủ, hỗ trợ quyết định và phân tích hậu kỳ, ICD-10 thiếu chi tiết. SNOMED CT là chuẩn được khuyến khích bổ sung trong Condition.code, Observation.code và AllergyIntolerance.code.

Khi nào VN Core sẽ bắt buộc SNOMED CT?

Theo lộ trình hiện tại, VN Core duy trì binding extensible cho SNOMED CT để giữ tính tương thích ngược trong giai đoạn chuyển tiếp. Việc nâng strength lên required hay preferred sẽ phụ thuộc vào thời điểm Việt Nam đạt national membership và phạm vi bản hóa đủ rộng (dự kiến từ 2027 trở đi sau khi mở rộng sang Procedure, Pharmaceutical Product và Substance).

Có thể test SNOMED CT trước khi membership không?

Có. SNOMED International cung cấp Affiliate License miễn phí cho mục đích nghiên cứu, đánh giá và phát triển không thương mại. Browser tại browser.ihtsdotools.org mở cho tất cả người dùng. Snowstorm có Docker image preload nội dung International Edition phục vụ thử nghiệm cục bộ.

11. Tham chiếu và đọc tiếp

Văn bản pháp lý Việt Nam

  • QĐ 2427/QĐ-BYT (25/07/2025) — Danh mục mã dùng chung thuật ngữ y học lâm sàng SNOMED CT Đợt 1, Body Structure 35.889 mã. Xem khung pháp lý.
  • QĐ 2493/QĐ-BYT (04/08/2025) — SNOMED CT Đợt 2, Morphologic Abnormality 5.155 mã. Xem khung pháp lý.
  • QĐ 2805/QĐ-BYT (04/09/2025) — SNOMED CT Đợt 3, Clinical Finding và Allergy 36.349 mã. Xem khung pháp lý.
  • QĐ 1928/QĐ-BYT (2023) — Kiến trúc Chính phủ điện tử Y tế phiên bản 2.1 (tham khảo bối cảnh, ngoài corpus chính thức của VN Core IG).
  • QĐ 4469/QĐ-BYT (28/10/2020) — ICD-10 Việt Nam.
  • Thông tư 13/2025/TT-BYT (06/06/2025) — Bệnh án điện tử.

Tài liệu SNOMED và FHIR

Đọc tiếp trong knowledge hub