@xdev-asia/xdev-knowledge-mcp 1.0.56 → 1.0.57

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (22) hide show
  1. package/content/series/architecture/omop-cdm-5-4-cho-nguoi-moi-bat-dau/chapters/01-phan-1-tong-quan-nen-tang/lessons/bai-1-omop-cdm-la-gi-tai-sao-can-chuan-hoa-du-lieu-y-te.md +339 -0
  2. package/content/series/architecture/omop-cdm-5-4-cho-nguoi-moi-bat-dau/chapters/01-phan-1-tong-quan-nen-tang/lessons/bai-2-kien-truc-tong-the-omop-cdm-5-4-nhom-bang-nguyen-ly-thiet-ke.md +440 -0
  3. package/content/series/architecture/omop-cdm-5-4-cho-nguoi-moi-bat-dau/chapters/01-phan-1-tong-quan-nen-tang/lessons/bai-3-hieu-concept-trai-tim-cua-omop-cdm.md +441 -0
  4. package/content/series/architecture/omop-cdm-5-4-cho-nguoi-moi-bat-dau/chapters/02-phan-2-person-visit-nen-tang/lessons/bai-4-bang-person-quan-ly-danh-tinh-benh-nhan.md +323 -0
  5. package/content/series/architecture/omop-cdm-5-4-cho-nguoi-moi-bat-dau/chapters/02-phan-2-person-visit-nen-tang/lessons/bai-5-observation-period-khoang-thoi-gian-theo-doi-benh-nhan.md +308 -0
  6. package/content/series/architecture/omop-cdm-5-4-cho-nguoi-moi-bat-dau/chapters/02-phan-2-person-visit-nen-tang/lessons/bai-6-visit-occurrence-visit-detail-luot-kham-chi-tiet.md +353 -0
  7. package/content/series/architecture/omop-cdm-5-4-cho-nguoi-moi-bat-dau/chapters/03-phan-3-su-kien-lam-sang-chinh/lessons/bai-10-measurement-xet-nghiem-do-luong.md +409 -0
  8. package/content/series/architecture/omop-cdm-5-4-cho-nguoi-moi-bat-dau/chapters/03-phan-3-su-kien-lam-sang-chinh/lessons/bai-7-condition-occurrence-chan-doan-benh-ly.md +285 -0
  9. package/content/series/architecture/omop-cdm-5-4-cho-nguoi-moi-bat-dau/chapters/03-phan-3-su-kien-lam-sang-chinh/lessons/bai-8-drug-exposure-thuoc-dieu-tri.md +354 -0
  10. package/content/series/architecture/omop-cdm-5-4-cho-nguoi-moi-bat-dau/chapters/03-phan-3-su-kien-lam-sang-chinh/lessons/bai-9-procedure-occurrence-thu-thuat-phau-thuat.md +291 -0
  11. package/content/series/architecture/omop-cdm-5-4-cho-nguoi-moi-bat-dau/chapters/04-phan-4-bang-lam-sang-mo-rong/lessons/bai-11-observation-su-kien-lam-sang-tong-hop.md +289 -0
  12. package/content/series/architecture/omop-cdm-5-4-cho-nguoi-moi-bat-dau/chapters/04-phan-4-bang-lam-sang-mo-rong/lessons/bai-12-device-exposure-specimen-note.md +313 -0
  13. package/content/series/architecture/omop-cdm-5-4-cho-nguoi-moi-bat-dau/chapters/04-phan-4-bang-lam-sang-mo-rong/lessons/bai-13-death-episode-episode-event.md +346 -0
  14. package/content/series/architecture/omop-cdm-5-4-cho-nguoi-moi-bat-dau/chapters/05-phan-5-standardized-vocabularies/lessons/bai-14-concept-vocabulary-nen-tang-tu-dien-chuan.md +298 -0
  15. package/content/series/architecture/omop-cdm-5-4-cho-nguoi-moi-bat-dau/chapters/05-phan-5-standardized-vocabularies/lessons/bai-15-concept-relationship-concept-ancestor.md +336 -0
  16. package/content/series/architecture/omop-cdm-5-4-cho-nguoi-moi-bat-dau/chapters/05-phan-5-standardized-vocabularies/lessons/bai-16-drug-strength-cac-bang-vocabulary-con-lai.md +295 -0
  17. package/content/series/architecture/omop-cdm-5-4-cho-nguoi-moi-bat-dau/chapters/06-phan-6-health-system-economics-derived/lessons/bai-17-location-care-site-provider.md +334 -0
  18. package/content/series/architecture/omop-cdm-5-4-cho-nguoi-moi-bat-dau/chapters/06-phan-6-health-system-economics-derived/lessons/bai-18-payer-plan-period-cost.md +343 -0
  19. package/content/series/architecture/omop-cdm-5-4-cho-nguoi-moi-bat-dau/chapters/06-phan-6-health-system-economics-derived/lessons/bai-19-condition-era-drug-era-dose-era.md +418 -0
  20. package/content/series/architecture/omop-cdm-5-4-cho-nguoi-moi-bat-dau/chapters/07-phan-7-metadata-cohort-tong-ket/lessons/bai-20-cdm-source-metadata-cohort-tong-ket.md +517 -0
  21. package/content/series/architecture/omop-cdm-5-4-cho-nguoi-moi-bat-dau/index.md +385 -0
  22. package/package.json +1 -1
@@ -0,0 +1,441 @@
1
+ ---
2
+ id: 019f1a00-a103-7b01-e001-omopcdm54003
3
+ title: "Bài 3: Hiểu Concept — Trái tim của OMOP CDM"
4
+ slug: bai-3-hieu-concept-trai-tim-cua-omop-cdm
5
+ description: >-
6
+ Concept là gì, Standard Concept vs Source Concept vs Classification
7
+ Concept, concept_id vs source_value vs source_concept_id,
8
+ Domain, Vocabulary, Concept Class, và cách tra cứu trên Athena.
9
+ duration_minutes: 60
10
+ is_free: true
11
+ video_url: null
12
+ sort_order: 3
13
+ section_title: "Phần 1: Tổng quan & Nền tảng"
14
+ course:
15
+ id: 019f1a00-a100-7b01-e001-omopcdm54001
16
+ title: "OMOP CDM 5.4 cho Người mới — Hiểu từ A đến Z"
17
+ slug: omop-cdm-5-4-cho-nguoi-moi-bat-dau
18
+ ---
19
+
20
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1200 340" style="max-width: 100%; height: auto; border-radius: 12px; margin-bottom: 1.5rem;">
21
+ <defs>
22
+ <linearGradient id="bg-omop03" x1="0%" y1="0%" x2="100%" y2="100%">
23
+ <stop offset="0%" style="stop-color:#0c1222"/>
24
+ <stop offset="100%" style="stop-color:#1e293b"/>
25
+ </linearGradient>
26
+ </defs>
27
+ <rect width="1200" height="340" rx="12" fill="url(#bg-omop03)"/>
28
+ <g>
29
+ <circle cx="659" cy="87" r="22" fill="#818cf8" opacity="0.12"/>
30
+ <circle cx="718" cy="106" r="29" fill="#818cf8" opacity="0.09"/>
31
+ <circle cx="777" cy="125" r="36" fill="#818cf8" opacity="0.06"/>
32
+ <circle cx="836" cy="144" r="13" fill="#818cf8" opacity="0.13"/>
33
+ <circle cx="895" cy="163" r="20" fill="#818cf8" opacity="0.1"/>
34
+ <line x1="600" y1="157" x2="1100" y2="237" stroke="#818cf8" stroke-width="0.5" opacity="0.1"/>
35
+ </g>
36
+ <rect x="60" y="50" width="4" height="60" rx="2" fill="#818cf8"/>
37
+ <rect x="80" y="50" width="121" height="28" rx="14" fill="#818cf8" opacity="0.15"/>
38
+ <text x="92" y="69" font-family="system-ui,-apple-system,sans-serif" font-size="13" font-weight="600" fill="#818cf8">🏗️ Kiến trúc — Bài 3</text>
39
+ <text x="60" y="140" font-family="system-ui,-apple-system,sans-serif" font-size="34" font-weight="700" fill="#f1f5f9">
40
+ <tspan x="60" dy="0">Hiểu Concept — Trái tim</tspan>
41
+ <tspan x="60" dy="42">của OMOP CDM</tspan>
42
+ </text>
43
+ <text x="60" y="244" font-family="system-ui,-apple-system,sans-serif" font-size="15" fill="#94a3b8" opacity="0.8">OMOP CDM 5.4 cho Người mới — Hiểu từ A đến Z</text>
44
+ <text x="60" y="268" font-family="system-ui,-apple-system,sans-serif" font-size="13" fill="#64748b" opacity="0.6">Phần 1: Tổng quan &amp; Nền tảng</text>
45
+ <text x="1140" y="320" font-family="system-ui,-apple-system,sans-serif" font-size="12" fill="#475569" text-anchor="end" opacity="0.4">xdev.asia</text>
46
+ </svg>
47
+
48
+ ![Hệ thống Concept — Source, Standard và Classification](/storage/uploads/2026/04/omop-cdm-bai3-concept-system.png)
49
+
50
+ ## Giới thiệu
51
+
52
+ Nếu OMOP CDM là một ngôi nhà, thì **Concept** chính là viên gạch — mọi thứ đều được xây dựng từ Concept. Hiểu rõ Concept là chìa khóa để hiểu toàn bộ CDM.
53
+
54
+ Bài này sẽ giải thích: Concept là gì? Standard vs Source Concept khác nhau sao? Làm sao tra cứu Concept trên Athena? Và "bộ ba thần thánh" `concept_id` / `source_value` / `source_concept_id` hoạt động thế nào.
55
+
56
+ ---
57
+
58
+ ## 1. Concept là gì?
59
+
60
+ ### 1.1. Định nghĩa
61
+
62
+ **Concept** = một "khái niệm" duy nhất trong y tế, được đại diện bởi một con số gọi là **concept_id**.
63
+
64
+ Mọi thứ bạn gặp trong y tế đều có Concept tương ứng:
65
+
66
+ | Thực thể y tế | concept_id | concept_name | Vocabulary |
67
+ |----------------|-----------|--------------|------------|
68
+ | Nữ giới | 8532 | Female | Gender |
69
+ | Tiểu đường type 2 | 201826 | Type 2 diabetes mellitus | SNOMED |
70
+ | Metformin 500mg tablet | 1503297 | metformin 500 MG Oral Tablet | RxNorm |
71
+ | Xét nghiệm HbA1c | 3004410 | Hemoglobin A1c/Hemoglobin.total in Blood | LOINC |
72
+ | Đơn vị phần trăm | 8554 | percent | UCUM |
73
+ | Khám ngoại trú | 9202 | Outpatient Visit | Visit |
74
+ | Dữ liệu từ EHR | 32817 | EHR | Type Concept |
75
+
76
+ ### 1.2. Bảng CONCEPT
77
+
78
+ Mỗi Concept được lưu như một dòng trong bảng `CONCEPT`:
79
+
80
+ ```sql
81
+ SELECT *
82
+ FROM concept
83
+ WHERE concept_id = 201826;
84
+ ```
85
+
86
+ | Cột | Giá trị | Mô tả |
87
+ |-----|---------|-------|
88
+ | `concept_id` | 201826 | ID duy nhất |
89
+ | `concept_name` | Type 2 diabetes mellitus | Tên hiển thị |
90
+ | `domain_id` | Condition | Thuộc domain nào |
91
+ | `vocabulary_id` | SNOMED | Từ vocabulary nào |
92
+ | `concept_class_id` | Clinical Finding | Loại concept |
93
+ | `standard_concept` | S | **S** = Standard |
94
+ | `concept_code` | 44054006 | Mã gốc trong vocabulary |
95
+ | `valid_start_date` | 1970-01-01 | Ngày bắt đầu có hiệu lực |
96
+ | `valid_end_date` | 2099-12-31 | Ngày hết hạn |
97
+ | `invalid_reason` | NULL | Lý do không hợp lệ |
98
+
99
+ ---
100
+
101
+ ## 2. Standard Concept vs Source Concept vs Classification
102
+
103
+ ### 2.1. Ba loại Concept
104
+
105
+ ```
106
+ standard_concept column:
107
+ ┌─────────────────────────────────────────────────────────────┐
108
+ │ │
109
+ │ 'S' = STANDARD CONCEPT │
110
+ │ → Dùng trong *_concept_id columns │
111
+ │ → Là "đại diện chính thức" cho một khái niệm │
112
+ │ → VD: SNOMED 201826 "Type 2 diabetes mellitus" │
113
+ │ │
114
+ │ 'C' = CLASSIFICATION CONCEPT │
115
+ │ → Dùng để phân nhóm/phân cấp │
116
+ │ → KHÔNG dùng trực tiếp trong clinical tables │
117
+ │ → VD: SNOMED parent concepts │
118
+ │ │
119
+ │ NULL = NON-STANDARD (SOURCE) CONCEPT │
120
+ │ → Mã từ vocabulary gốc │
121
+ │ → Lưu trong *_source_concept_id columns │
122
+ │ → VD: ICD-10 E11 "Type 2 diabetes mellitus" │
123
+ │ │
124
+ └─────────────────────────────────────────────────────────────┘
125
+ ```
126
+
127
+ ### 2.2. Ví dụ cụ thể: "Tiểu đường type 2"
128
+
129
+ ```
130
+ ICD-10-CM 'E11' SNOMED 44054006
131
+ ┌──────────────────────┐ Maps to ┌──────────────────────────┐
132
+ │ concept_id = 443238 │ ──────────→ │ concept_id = 201826 │
133
+ │ standard_concept=NULL│ │ standard_concept = 'S' │
134
+ │ vocabulary=ICD10CM │ │ vocabulary = SNOMED │
135
+ │ (Source Concept) │ │ (Standard Concept) │
136
+ └──────────────────────┘ └──────────────────────────┘
137
+
138
+ Trong bảng CONDITION_OCCURRENCE:
139
+ ┌────────────────────────────────────────────────────────────────────┐
140
+ │ condition_concept_id = 201826 ← Standard (SNOMED) │
141
+ │ condition_source_value = 'E11' ← Text gốc từ HIS │
142
+ │ condition_source_concept_id = 443238 ← Source Concept (ICD-10) │
143
+ └────────────────────────────────────────────────────────────────────┘
144
+ ```
145
+
146
+ ### 2.3. Bộ ba thần thánh
147
+
148
+ Hầu hết bảng clinical có 3 cột cho mỗi trường concept:
149
+
150
+ | Cột | Mục đích | Giá trị |
151
+ |-----|---------|---------|
152
+ | `*_concept_id` | **Phân tích** — concept chuẩn | Standard Concept ID (S) |
153
+ | `*_source_value` | **Truy vết** — giá trị gốc dạng text | Text gốc (VD: "E11", "Glucophage") |
154
+ | `*_source_concept_id` | **Mapping ngược** — concept gốc | Non-standard Concept ID |
155
+
156
+ ```
157
+ ┌── Dùng để phân tích (SELECT, GROUP BY, JOIN)
158
+
159
+ condition_concept_id = 201826 ← Standard SNOMED
160
+ ├── Truy nguyên nguồn gốc
161
+ condition_source_value = 'E11' ← Text gốc HIS │
162
+ condition_source_concept_id = 443238 ← ICD-10 ───┘
163
+ ```
164
+
165
+ ---
166
+
167
+ ## 3. Domain — Concept thuộc bảng nào?
168
+
169
+ ### 3.1. Các Domain chính
170
+
171
+ | Domain | Bảng đích | Ví dụ |
172
+ |--------|-----------|-------|
173
+ | Condition | CONDITION_OCCURRENCE | Tiểu đường, viêm phổi |
174
+ | Drug | DRUG_EXPOSURE | Metformin, Amoxicillin |
175
+ | Procedure | PROCEDURE_OCCURRENCE | Nội soi, phẫu thuật |
176
+ | Measurement | MEASUREMENT | HbA1c, huyết áp, BMI |
177
+ | Observation | OBSERVATION | Hút thuốc, tiền sử gia đình |
178
+ | Device | DEVICE_EXPOSURE | Stent, máy tạo nhịp |
179
+ | Specimen | SPECIMEN | Mẫu máu, mẫu mô |
180
+ | Visit | VISIT_OCCURRENCE | Khám ngoại trú, nhập viện |
181
+ | Gender | PERSON | Male, Female |
182
+ | Race | PERSON | Asian, White |
183
+ | Type Concept | Mọi bảng | EHR, Claim, Lab |
184
+ | Unit | MEASUREMENT | mg/dL, %, mmHg |
185
+ | Route | DRUG_EXPOSURE | Oral, IV, Topical |
186
+
187
+ ### 3.2. Tại sao Domain quan trọng?
188
+
189
+ Domain quyết định **bản ghi nằm ở bảng nào**. Đây là quy tắc ETL cốt lõi:
190
+
191
+ ```
192
+ Dữ liệu nguồn: "ICD-10: Z87.891 — History of nicotine dependence"
193
+
194
+ Bước 1: Tra cứu ICD-10 Z87.891 trên Athena
195
+ Bước 2: Tìm Standard Concept → maps to SNOMED concept
196
+ Bước 3: Standard Concept thuộc domain "Observation"
197
+ Bước 4: Lưu vào bảng OBSERVATION (không phải CONDITION!)
198
+
199
+ ⚠️ Dù ICD-10 thường gắn với Condition domain,
200
+ nhưng "History of" map sang Observation domain
201
+ ```
202
+
203
+ ---
204
+
205
+ ## 4. Vocabulary — Nguồn gốc Concept
206
+
207
+ ### 4.1. Các Vocabulary quan trọng
208
+
209
+ ```
210
+ ┌──────────────────────────────────────────────────────────────────┐
211
+ │ VOCABULARY CHÍNH TRONG OMOP CDM │
212
+ │ │
213
+ │ ┌─────────────┐ Conditions (diagnoses, symptoms) │
214
+ │ │ SNOMED CT │ → Standard vocabulary cho Condition domain │
215
+ │ └─────────────┘ │
216
+ │ │
217
+ │ ┌─────────────┐ Drugs (medications, vaccines) │
218
+ │ │ RxNorm │ → Standard vocabulary cho Drug domain │
219
+ │ └─────────────┘ │
220
+ │ │
221
+ │ ┌─────────────┐ Measurements (lab tests, vitals) │
222
+ │ │ LOINC │ → Standard vocabulary cho Measurement domain │
223
+ │ └─────────────┘ │
224
+ │ │
225
+ │ ┌─────────────┐ Procedures │
226
+ │ │ SNOMED CT │ → Standard vocabulary cho Procedure domain │
227
+ │ │ CPT4 │ → US-specific procedures │
228
+ │ └─────────────┘ │
229
+ │ │
230
+ │ SOURCE VOCABULARIES (Non-standard, cần mapping): │
231
+ │ ICD-10-CM/VN, ICD-9-CM, NDC, HCPCS, ATC, Read, MedDRA │
232
+ └──────────────────────────────────────────────────────────────────┘
233
+ ```
234
+
235
+ ### 4.2. Standard vs Non-standard Vocabulary
236
+
237
+ | Loại | Ví dụ | standard_concept | Dùng ở cột |
238
+ |------|-------|------------------|------------|
239
+ | **Standard** | SNOMED CT, RxNorm, LOINC | 'S' | `*_concept_id` |
240
+ | **Non-standard** | ICD-10, NDC, ATC, MedDRA | NULL | `*_source_concept_id` |
241
+ | **Classification** | SNOMED hierarchy nodes | 'C' | Dùng trong queries phân cấp |
242
+
243
+ ### 4.3. Quá trình Mapping
244
+
245
+ ```
246
+ HIS: "E11" (ICD-10)
247
+
248
+ │ Tra bảng CONCEPT_RELATIONSHIP
249
+ │ relationship_id = 'Maps to'
250
+
251
+ Source Concept: 443238 (ICD-10 E11)
252
+
253
+ │ Maps to
254
+
255
+ Standard Concept: 201826 (SNOMED Type 2 diabetes mellitus)
256
+ ```
257
+
258
+ SQL tra cứu mapping:
259
+
260
+ ```sql
261
+ -- Tìm Standard Concept từ ICD-10 code 'E11'
262
+ SELECT
263
+ c1.concept_id AS source_concept_id,
264
+ c1.concept_name AS source_name,
265
+ c1.vocabulary_id AS source_vocab,
266
+ c2.concept_id AS standard_concept_id,
267
+ c2.concept_name AS standard_name,
268
+ c2.vocabulary_id AS standard_vocab
269
+ FROM concept c1
270
+ JOIN concept_relationship cr
271
+ ON c1.concept_id = cr.concept_id_1
272
+ AND cr.relationship_id = 'Maps to'
273
+ JOIN concept c2
274
+ ON cr.concept_id_2 = c2.concept_id
275
+ AND c2.standard_concept = 'S'
276
+ WHERE c1.concept_code = 'E11'
277
+ AND c1.vocabulary_id = 'ICD10CM';
278
+ ```
279
+
280
+ ---
281
+
282
+ ## 5. Concept Class — Phân loại chi tiết
283
+
284
+ Mỗi Concept thuộc một **Concept Class** cho biết nó thuộc cấp độ nào trong vocabulary:
285
+
286
+ | Domain | Concept Class | Ví dụ |
287
+ |--------|---------------|-------|
288
+ | Condition | Clinical Finding | Type 2 diabetes mellitus |
289
+ | Drug | **Ingredient** | Metformin |
290
+ | Drug | **Clinical Drug** | Metformin 500 MG Oral Tablet |
291
+ | Drug | **Branded Drug** | Glucophage 500 MG Oral Tablet |
292
+ | Measurement | Lab Test | Hemoglobin A1c |
293
+ | Measurement | Clinical Observation | Body weight |
294
+ | Procedure | Procedure | Coronary artery bypass grafting |
295
+ | Observation | Context-dependent | History of clinical finding |
296
+
297
+ ### Drug Concept Class — Đặc biệt quan trọng
298
+
299
+ RxNorm tổ chức thuốc theo cấp độ:
300
+
301
+ ```
302
+ INGREDIENT (hoạt chất)
303
+ └── Metformin (concept_id = 1503297)
304
+
305
+ ├── CLINICAL DRUG FORM
306
+ │ └── Metformin Oral Tablet
307
+ │ │
308
+ │ ├── CLINICAL DRUG (hoạt chất + liều + dạng)
309
+ │ │ └── Metformin 500 MG Oral Tablet
310
+ │ │ │
311
+ │ │ └── BRANDED DRUG (tên thương mại)
312
+ │ │ └── Glucophage 500 MG Oral Tablet
313
+ │ │
314
+ │ └── CLINICAL DRUG
315
+ │ └── Metformin 1000 MG Oral Tablet
316
+
317
+ └── CLINICAL DRUG FORM
318
+ └── Metformin Extended Release Oral Tablet
319
+ ```
320
+
321
+ ---
322
+
323
+ ## 6. Tra cứu Concept trên Athena
324
+
325
+ ### 6.1. Athena là gì?
326
+
327
+ **Athena** (https://athena.ohdsi.org/) là công cụ web miễn phí để tra cứu Standardized Vocabularies.
328
+
329
+ ### 6.2. Hướng dẫn tra cứu
330
+
331
+ **Bước 1:** Truy cập https://athena.ohdsi.org/ (cần tạo tài khoản miễn phí)
332
+
333
+ **Bước 2:** Nhập từ khóa, ví dụ "diabetes type 2"
334
+
335
+ **Bước 3:** Lọc kết quả:
336
+ - **Standard Concept:** chọn "Standard" để chỉ xem concept chuẩn
337
+ - **Domain:** chọn "Condition" nếu tìm bệnh
338
+ - **Vocabulary:** chọn "SNOMED" hoặc "ICD10CM"
339
+
340
+ **Bước 4:** Xem chi tiết concept:
341
+ - Concept ID, name, class, domain, vocabulary
342
+ - Tab **Relationships**: xem "Maps to", "Is a", "Has component"
343
+ - Tab **Hierarchy**: xem concept cha/con
344
+
345
+ ### 6.3. Ví dụ tra cứu phổ biến
346
+
347
+ ```
348
+ Tìm bệnh tiểu đường type 2:
349
+ → Search: "type 2 diabetes"
350
+ → Filter: Domain=Condition, Standard=Standard
351
+ → Kết quả: concept_id=201826, SNOMED "Type 2 diabetes mellitus"
352
+
353
+ Tìm thuốc Metformin:
354
+ → Search: "metformin"
355
+ → Filter: Domain=Drug, Concept Class=Ingredient
356
+ → Kết quả: concept_id=1503297, RxNorm "metformin"
357
+
358
+ Tìm xét nghiệm HbA1c:
359
+ → Search: "hemoglobin a1c"
360
+ → Filter: Domain=Measurement, Standard=Standard
361
+ → Kết quả: concept_id=3004410, LOINC "Hemoglobin A1c/Hemoglobin.total"
362
+ ```
363
+
364
+ ---
365
+
366
+ ## 7. concept_id = 0 — Khi không map được
367
+
368
+ Khi dữ liệu nguồn không thể map sang Standard Concept:
369
+
370
+ ```sql
371
+ -- Một mã thuốc nội bộ bệnh viện không có trong RxNorm
372
+ drug_concept_id = 0 -- Không map được!
373
+ drug_source_value = 'THUOC_BV_001' -- Vẫn giữ mã gốc
374
+ drug_source_concept_id = 0 -- Cũng không có source concept
375
+ ```
376
+
377
+ **Điều này hoàn toàn hợp lệ.** OMOP CDM cho phép `concept_id = 0`, nhưng mục tiêu là **giảm thiểu** số bản ghi có concept_id = 0 bằng cách:
378
+
379
+ 1. Sử dụng **SOURCE_TO_CONCEPT_MAP** cho custom mappings
380
+ 2. Dùng công cụ **Usagi** để mapping bán tự động
381
+ 3. Yêu cầu cộng đồng thêm concepts mới vào vocabulary
382
+
383
+ ---
384
+
385
+ ## 8. Thực hành: Đọc một bản ghi CDM
386
+
387
+ Cho bản ghi sau trong `CONDITION_OCCURRENCE`:
388
+
389
+ ```sql
390
+ condition_occurrence_id = 50001
391
+ person_id = 12345
392
+ condition_concept_id = 201826
393
+ condition_start_date = '2024-06-10'
394
+ condition_start_datetime = '2024-06-10 09:30:00'
395
+ condition_end_date = NULL
396
+ condition_end_datetime = NULL
397
+ condition_type_concept_id = 32817
398
+ condition_status_concept_id = 32902
399
+ provider_id = 5001
400
+ visit_occurrence_id = V001
401
+ condition_source_value = 'E11'
402
+ condition_source_concept_id = 443238
403
+ condition_status_source_value = 'admitting'
404
+ ```
405
+
406
+ **Giải mã:**
407
+
408
+ | Trường | Giá trị | Ý nghĩa |
409
+ |--------|---------|---------|
410
+ | condition_concept_id = 201826 | SNOMED "Type 2 diabetes mellitus" | Chẩn đoán chuẩn |
411
+ | condition_type_concept_id = 32817 | "EHR" | Dữ liệu từ hệ thống EMR |
412
+ | condition_status_concept_id = 32902 | "Primary diagnosis" | Chẩn đoán chính |
413
+ | condition_source_value = 'E11' | ICD-10-CM code gốc | Mã gốc từ HIS |
414
+ | condition_source_concept_id = 443238 | ICD-10-CM concept cho "E11" | Concept gốc |
415
+ | provider_id = 5001 | Bác sĩ chẩn đoán | Tra bảng PROVIDER |
416
+ | visit_occurrence_id = V001 | Lượt khám ngoại trú | Tra bảng VISIT_OCCURRENCE |
417
+
418
+ ---
419
+
420
+ ## Tổng kết
421
+
422
+ Trong bài này, bạn đã hiểu:
423
+
424
+ 1. **Concept** = khái niệm y tế, đại diện bởi concept_id duy nhất
425
+ 2. **3 loại Concept**: Standard (S), Classification (C), Source (NULL)
426
+ 3. **Bộ ba cột**: `*_concept_id` / `*_source_value` / `*_source_concept_id`
427
+ 4. **Domain** quyết định bản ghi nằm ở bảng nào
428
+ 5. **Vocabulary**: SNOMED (Condition), RxNorm (Drug), LOINC (Measurement)
429
+ 6. **Concept Class**: phân loại chi tiết (Ingredient vs Clinical Drug...)
430
+ 7. **Athena**: công cụ tra cứu concept miễn phí
431
+ 8. **concept_id = 0**: hợp lệ khi không map được
432
+
433
+ **Bài tiếp theo:** Chúng ta sẽ bắt đầu khám phá bảng đầu tiên — **PERSON** — nơi lưu trữ thông tin nhân khẩu bệnh nhân.
434
+
435
+ ---
436
+
437
+ ## Tài liệu tham khảo
438
+
439
+ - [Athena — OHDSI Vocabulary Search](https://athena.ohdsi.org/)
440
+ - [The Book of OHDSI — Chapter 5: Standardized Vocabularies](https://ohdsi.github.io/TheBookOfOhdsi/StandardizedVocabularies.html)
441
+ - [OMOP CDM Wiki — Concept](https://ohdsi.github.io/CommonDataModel/cdm54.html#CONCEPT)