1. Main medical terminology systems
| System | Organize | Purpose | FHIR system URI |
|---|---|---|---|
| ICD-10 | WHO | Classification of diseases and causes of death | http://hl7.org/fhir/sid/icd-10 |
| SNOMED CT | SNOMED Int'l | Comprehensive clinical terminology | http://snomed.info/sct |
| LOINC | Regenstrief | Laboratory testing and clinical observation | http://loinc.org |
| RxNorm | NLM | Standardized drug names (USA) | http://www.nlm.nih.gov/research/umls/rxnorm |
| ATC | WHO | Classification of drugs by group (international) | http://www.whocc.no/atc |
| CPT | AMA | Medical procedure/service code | http://www.ama-assn.org/go/cpt |
| CVX | CDC | Vaccine code | http://hl7.org/fhir/sid/cvx |
| UCUM | Regenstrief | Measurement unit | http://unitsofmeasure.org |
ICD-10 — International Classification of Diseases
Use for Condition.code, Encounter.diagnosis. Vietnam uses the official ICD-10 (WHO).
{
"system": "http://hl7.org/fhir/sid/icd-10",
"code": "E11.9",
"display": "Type 2 diabetes mellitus without complications"
}
SNOMED CT — Systematized Nomenclature of Medicine
The most comprehensive terminology system, 350,000+ concepts, hierarchical relationships (ontology).
{
"system": "http://snomed.info/sct",
"code": "73211009",
"display": "Diabetes mellitus"
}
LOINC — Logical Observation Identifiers Names and Codes
97,000+ codes for testing and clinical observations. Used for Observation.code, DiagnosticReport.code.
{
"system": "http://loinc.org",
"code": "4548-4",
"display": "Hemoglobin A1c/Hemoglobin.total in Blood"
}
2. CodeSystem Resource
CodeSystem defines a set of concepts (codes) — can be international or custom systems.
{
"resourceType": "CodeSystem",
"url": "http://hospital.vn/fhir/CodeSystem/loai-kham",
"name": "LoaiKham",
"title": "Loại hình khám chữa bệnh",
"status": "active",
"content": "complete",
"count": 5,
"concept": [
{
"code": "KSK",
"display": "Khám sức khỏe",
"definition": "Khám sức khỏe tổng quát định kỳ"
},
{
"code": "KBT",
"display": "Khám bệnh thường",
"definition": "Khám bệnh ngoại trú thông thường"
},
{
"code": "CC",
"display": "Cấp cứu",
"definition": "Khám cấp cứu"
},
{
"code": "BHYT",
"display": "Khám BHYT",
"definition": "Khám bảo hiểm y tế"
},
{
"code": "DV",
"display": "Khám dịch vụ",
"definition": "Khám theo yêu cầu (dịch vụ)"
}
]
}
3. ValueSet Resource
ValueSet Select a subset from one or more CodeSystems.
{
"resourceType": "ValueSet",
"url": "http://hospital.vn/fhir/ValueSet/vital-signs-codes",
"name": "VitalSignsCodes",
"title": "Mã dấu hiệu sinh tồn",
"status": "active",
"compose": {
"include": [
{
"system": "http://loinc.org",
"concept": [
{"code": "8480-6", "display": "Systolic blood pressure"},
{"code": "8462-4", "display": "Diastolic blood pressure"},
{"code": "8867-4", "display": "Heart rate"},
{"code": "8310-5", "display": "Body temperature"},
{"code": "9279-1", "display": "Respiratory rate"},
{"code": "2708-6", "display": "Oxygen saturation (SpO2)"},
{"code": "29463-7", "display": "Body weight"},
{"code": "8302-2", "display": "Body height"}
]
}
]
}
}
ValueSet with Filter
{
"resourceType": "ValueSet",
"url": "http://hospital.vn/fhir/ValueSet/icd10-cardiovascular",
"compose": {
"include": [
{
"system": "http://hl7.org/fhir/sid/icd-10",
"filter": [
{
"property": "concept",
"op": "is-a",
"value": "I00-I99"
}
]
}
],
"exclude": [
{
"system": "http://hl7.org/fhir/sid/icd-10",
"concept": [
{"code": "I99"}
]
}
]
}
}
4. ConceptMap — Mapping between CodeSystems
{
"resourceType": "ConceptMap",
"url": "http://hospital.vn/fhir/ConceptMap/icd10-to-snomed",
"name": "ICD10ToSNOMED",
"title": "ICD-10 → SNOMED CT Mapping",
"status": "active",
"sourceScope": "http://hl7.org/fhir/sid/icd-10",
"targetScope": "http://snomed.info/sct",
"group": [
{
"source": "http://hl7.org/fhir/sid/icd-10",
"target": "http://snomed.info/sct",
"element": [
{
"code": "I10",
"display": "Essential (primary) hypertension",
"target": [
{
"code": "38341003",
"display": "Hypertensive disorder",
"relationship": "equivalent"
}
]
},
{
"code": "E11",
"display": "Type 2 diabetes mellitus",
"target": [
{
"code": "44054006",
"display": "Type 2 diabetes mellitus",
"relationship": "equivalent"
}
]
}
]
}
]
}
Relationship Types
| Relationship | Description |
|---|---|
| equivalent | Completely equivalent |
| source-is-narrower-than-target | Source is narrower than target |
| source-is-broader-than-target | Source is broader than target |
| not-related-to | Not related |
5. Terminology Binding
Binding specifies which elements are REQUIRED to use codes from ValueSet.
| Strength | Description | For example |
|---|---|---|
| required. required | REQUIRED to use code from ValueSet | Patient.gender |
| extensible | SHOULD be used. You can use another code if you cannot find it | Condition.code |
| preferred | RECOMMENDED. Other codes can be used | Encounter.type |
| example | Just examples. Any ValueSet can be used | Observation.code |
6. Terminology Service Operations
# $validate-code — kiểm tra code có hợp lệ trong ValueSet
POST /ValueSet/$validate-code
{
"resourceType": "Parameters",
"parameter": [
{"name": "url", "valueUri": "http://hl7.org/fhir/ValueSet/administrative-gender"},
{"name": "code", "valueCode": "male"},
{"name": "system", "valueUri": "http://hl7.org/fhir/administrative-gender"}
]
}
# $expand — mở rộng ValueSet ra danh sách codes
GET /ValueSet/$expand?url=http://hospital.vn/fhir/ValueSet/vital-signs-codes
# $lookup — tra cứu thông tin code
GET /CodeSystem/$lookup?system=http://loinc.org&code=4548-4
# $translate — ánh xạ code qua ConceptMap
GET /ConceptMap/$translate?system=http://hl7.org/fhir/sid/icd-10&code=I10&target=http://snomed.info/sct
7. Summary
CodeSystem — Define code sets (ICD-10, SNOMED CT, LOINC, or custom)
ValueSet — Select subset from CodeSystems, used for binding
ConceptMap — Mapping between CodeSystems (ICD-10 ↔ SNOMED CT)
Binding strengths — required > extensible > preferred > example
Terminology operations — $validate-code, $expand, $lookup, $translate