@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.
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- package/content/series/architecture/omop-cdm-5-4-cho-nguoi-moi-bat-dau/index.md +385 -0
- 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 & 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
|
+

|
|
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)
|