@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,334 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: 019f1a00-a117-7b01-e001-omopcdm54017
|
|
3
|
+
title: "Bài 17: LOCATION, CARE_SITE & PROVIDER — Hệ thống cơ sở y tế"
|
|
4
|
+
slug: bai-17-location-care-site-provider
|
|
5
|
+
description: >-
|
|
6
|
+
Ba bảng Health System Data: LOCATION (địa lý), CARE_SITE
|
|
7
|
+
(cơ sở khám chữa bệnh), PROVIDER (bác sĩ, nhân viên y tế)
|
|
8
|
+
và cách chúng liên kết với dữ liệu lâm sàng.
|
|
9
|
+
duration_minutes: 45
|
|
10
|
+
is_free: true
|
|
11
|
+
video_url: null
|
|
12
|
+
sort_order: 17
|
|
13
|
+
section_title: "Phần 6: Health System, Economics & Derived Elements"
|
|
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-omop17" 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-omop17)"/>
|
|
28
|
+
<g>
|
|
29
|
+
<circle cx="750" cy="80" r="24" fill="#818cf8" opacity="0.12"/>
|
|
30
|
+
<circle cx="850" cy="120" r="20" fill="#818cf8" opacity="0.08"/>
|
|
31
|
+
<circle cx="680" cy="150" r="18" fill="#818cf8" opacity="0.07"/>
|
|
32
|
+
<line x1="600" y1="100" x2="1100" y2="260" stroke="#818cf8" stroke-width="0.5" opacity="0.1"/>
|
|
33
|
+
</g>
|
|
34
|
+
<rect x="60" y="50" width="4" height="60" rx="2" fill="#818cf8"/>
|
|
35
|
+
<rect x="80" y="50" width="130" height="28" rx="14" fill="#818cf8" opacity="0.15"/>
|
|
36
|
+
<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 17</text>
|
|
37
|
+
<text x="60" y="140" font-family="system-ui,-apple-system,sans-serif" font-size="34" font-weight="700" fill="#f1f5f9">
|
|
38
|
+
<tspan x="60" dy="0">LOCATION, CARE_SITE &</tspan>
|
|
39
|
+
<tspan x="60" dy="42">PROVIDER — Hệ thống CSYT</tspan>
|
|
40
|
+
</text>
|
|
41
|
+
<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>
|
|
42
|
+
<text x="60" y="268" font-family="system-ui,-apple-system,sans-serif" font-size="13" fill="#64748b" opacity="0.6">Phần 6: Health System, Economics & Derived Elements</text>
|
|
43
|
+
<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>
|
|
44
|
+
</svg>
|
|
45
|
+
|
|
46
|
+

|
|
47
|
+
|
|
48
|
+
## Giới thiệu
|
|
49
|
+
|
|
50
|
+
Nhóm **Health System Data** gồm 3 bảng mô tả *nơi* và *ai* cung cấp dịch vụ y tế. Trong bệnh viện Việt Nam, đây là nơi lưu thông tin cơ sở y tế (tuyến trung ương, tỉnh, huyện), phòng khoa, và bác sĩ phụ trách.
|
|
51
|
+
|
|
52
|
+
---
|
|
53
|
+
|
|
54
|
+
## 1. LOCATION — Địa điểm địa lý
|
|
55
|
+
|
|
56
|
+
### 1.1. Cấu trúc bảng
|
|
57
|
+
|
|
58
|
+
| Cột | Kiểu | Bắt buộc | Mô tả |
|
|
59
|
+
|-----|------|----------|-------|
|
|
60
|
+
| `location_id` | INTEGER | ✅ PK | ID duy nhất |
|
|
61
|
+
| `address_1` | VARCHAR(50) | | Địa chỉ dòng 1 |
|
|
62
|
+
| `address_2` | VARCHAR(50) | | Địa chỉ dòng 2 |
|
|
63
|
+
| `city` | VARCHAR(50) | | Thành phố / Quận / Huyện |
|
|
64
|
+
| `state` | VARCHAR(2) | | Bang/Tỉnh (US: 2 ký tự) |
|
|
65
|
+
| `zip` | VARCHAR(9) | | Mã bưu điện |
|
|
66
|
+
| `county` | VARCHAR(20) | | County |
|
|
67
|
+
| `location_source_value` | VARCHAR(50) | | Mã nguồn |
|
|
68
|
+
| `country_concept_id` | INTEGER | | FK → CONCEPT (quốc gia) |
|
|
69
|
+
| `country_source_value` | VARCHAR(80) | | Mã quốc gia nguồn |
|
|
70
|
+
| `latitude` | FLOAT | | Vĩ độ |
|
|
71
|
+
| `longitude` | FLOAT | | Kinh độ |
|
|
72
|
+
|
|
73
|
+
### 1.2. ETL cho Việt Nam
|
|
74
|
+
|
|
75
|
+
```sql
|
|
76
|
+
INSERT INTO location (
|
|
77
|
+
location_id,
|
|
78
|
+
address_1,
|
|
79
|
+
city,
|
|
80
|
+
state,
|
|
81
|
+
zip,
|
|
82
|
+
country_concept_id,
|
|
83
|
+
country_source_value,
|
|
84
|
+
latitude,
|
|
85
|
+
longitude
|
|
86
|
+
) VALUES (
|
|
87
|
+
1001,
|
|
88
|
+
'78 Giải Phóng',
|
|
89
|
+
'Hai Bà Trưng',
|
|
90
|
+
'HN', -- Mã tỉnh 2 ký tự
|
|
91
|
+
'100000', -- Mã bưu điện VN
|
|
92
|
+
4330442, -- concept_id cho 'Viet Nam'
|
|
93
|
+
'VN',
|
|
94
|
+
21.0024, -- Latitude
|
|
95
|
+
105.8432 -- Longitude
|
|
96
|
+
);
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
> **Lưu ý VN:** Trường `state` chỉ 2 ký tự — dùng mã tỉnh rút gọn (HN, HCM, DN...).
|
|
100
|
+
> Nếu cần đầy đủ, dùng `location_source_value` lưu "Hà Nội".
|
|
101
|
+
|
|
102
|
+
---
|
|
103
|
+
|
|
104
|
+
## 2. CARE_SITE — Cơ sở khám chữa bệnh
|
|
105
|
+
|
|
106
|
+
### 2.1. Cấu trúc bảng
|
|
107
|
+
|
|
108
|
+
| Cột | Kiểu | Bắt buộc | Mô tả |
|
|
109
|
+
|-----|------|----------|-------|
|
|
110
|
+
| `care_site_id` | INTEGER | ✅ PK | ID duy nhất |
|
|
111
|
+
| `care_site_name` | VARCHAR(255) | | Tên cơ sở |
|
|
112
|
+
| `place_of_service_concept_id` | INTEGER | | Loại cơ sở (FK → CONCEPT) |
|
|
113
|
+
| `location_id` | INTEGER | | FK → LOCATION |
|
|
114
|
+
| `care_site_source_value` | VARCHAR(50) | | Mã nguồn |
|
|
115
|
+
| `place_of_service_source_value` | VARCHAR(50) | | Mã loại nguồn |
|
|
116
|
+
|
|
117
|
+
### 2.2. Loại cơ sở y tế (place_of_service_concept_id)
|
|
118
|
+
|
|
119
|
+
| Concept ID | Concept Name | Ví dụ VN |
|
|
120
|
+
|------------|-------------|-----------|
|
|
121
|
+
| 8717 | Inpatient Hospital | Khoa Nội trú |
|
|
122
|
+
| 8756 | Outpatient Hospital | Phòng khám ngoại trú |
|
|
123
|
+
| 8940 | Office | Phòng khám tư |
|
|
124
|
+
| 8883 | Skilled Nursing Facility | Cơ sở điều dưỡng |
|
|
125
|
+
| 8716 | Home Health Agency | Chăm sóc tại nhà |
|
|
126
|
+
| 8761 | Emergency Room | Khoa Cấp cứu |
|
|
127
|
+
| 581382 | Telehealth | Khám từ xa |
|
|
128
|
+
|
|
129
|
+
### 2.3. Ví dụ ETL từ dữ liệu bệnh viện VN
|
|
130
|
+
|
|
131
|
+
```sql
|
|
132
|
+
-- Bệnh viện Bạch Mai
|
|
133
|
+
INSERT INTO care_site VALUES (
|
|
134
|
+
2001, -- care_site_id
|
|
135
|
+
'Bệnh viện Bạch Mai', -- care_site_name
|
|
136
|
+
8717, -- Inpatient Hospital
|
|
137
|
+
1001, -- location_id (78 GP, HBT)
|
|
138
|
+
'BV-BACHMAI-001', -- care_site_source_value
|
|
139
|
+
'TUYEN_TW' -- place_of_service_source_value
|
|
140
|
+
);
|
|
141
|
+
|
|
142
|
+
-- Khoa Nội tiêu hóa - Bạch Mai
|
|
143
|
+
INSERT INTO care_site VALUES (
|
|
144
|
+
2002,
|
|
145
|
+
'Khoa Nội Tiêu hóa - BV Bạch Mai',
|
|
146
|
+
8756, -- Outpatient Hospital
|
|
147
|
+
1001, -- cùng location
|
|
148
|
+
'BV-BM-NOI-TIEUHOA',
|
|
149
|
+
'KHOA_NOITRU'
|
|
150
|
+
);
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
### 2.4. Mô hình phân cấp VN
|
|
154
|
+
|
|
155
|
+
```
|
|
156
|
+
CARE_SITE (Tuyến TW)
|
|
157
|
+
├── BV Bạch Mai (care_site_id = 2001)
|
|
158
|
+
│ ├── Khoa Nội Tiêu hóa (2002)
|
|
159
|
+
│ ├── Khoa Tim mạch (2003)
|
|
160
|
+
│ └── Khoa Cấp cứu (2004)
|
|
161
|
+
│
|
|
162
|
+
CARE_SITE (Tuyến Tỉnh)
|
|
163
|
+
├── BV Đa khoa Hà Nội (2010)
|
|
164
|
+
│ ├── Khoa Ngoại (2011)
|
|
165
|
+
│ └── Khoa Sản (2012)
|
|
166
|
+
│
|
|
167
|
+
CARE_SITE (Tuyến Huyện)
|
|
168
|
+
└── TTYT Hoàng Mai (2020)
|
|
169
|
+
└── Phòng khám đa khoa (2021)
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
> **Lưu ý:** OMOP CDM không có cấu trúc parent-child cho CARE_SITE. Nếu cần phân cấp, dùng convention đặt tên hoặc thêm bảng mapping riêng.
|
|
173
|
+
|
|
174
|
+
---
|
|
175
|
+
|
|
176
|
+
## 3. PROVIDER — Nhân viên y tế
|
|
177
|
+
|
|
178
|
+
### 3.1. Cấu trúc bảng
|
|
179
|
+
|
|
180
|
+
| Cột | Kiểu | Bắt buộc | Mô tả |
|
|
181
|
+
|-----|------|----------|-------|
|
|
182
|
+
| `provider_id` | INTEGER | ✅ PK | ID duy nhất |
|
|
183
|
+
| `provider_name` | VARCHAR(255) | | Tên (khuyến nghị de-identify) |
|
|
184
|
+
| `npi` | VARCHAR(20) | | National Provider Identifier (US) |
|
|
185
|
+
| `dea` | VARCHAR(20) | | DEA Number (US) |
|
|
186
|
+
| `specialty_concept_id` | INTEGER | | Chuyên khoa (FK → CONCEPT) |
|
|
187
|
+
| `care_site_id` | INTEGER | | FK → CARE_SITE |
|
|
188
|
+
| `year_of_birth` | INTEGER | | Năm sinh |
|
|
189
|
+
| `gender_concept_id` | INTEGER | | Giới tính |
|
|
190
|
+
| `provider_source_value` | VARCHAR(50) | | Mã nguồn |
|
|
191
|
+
| `specialty_source_value` | VARCHAR(50) | | Mã chuyên khoa nguồn |
|
|
192
|
+
| `specialty_source_concept_id` | INTEGER | | FK → CONCEPT |
|
|
193
|
+
| `gender_source_value` | VARCHAR(50) | | Giới tính nguồn |
|
|
194
|
+
| `gender_source_concept_id` | INTEGER | | FK → CONCEPT |
|
|
195
|
+
|
|
196
|
+
### 3.2. Specialty trong OMOP
|
|
197
|
+
|
|
198
|
+
```sql
|
|
199
|
+
-- Tìm specialty concepts phổ biến
|
|
200
|
+
SELECT
|
|
201
|
+
c.concept_id,
|
|
202
|
+
c.concept_name,
|
|
203
|
+
c.vocabulary_id
|
|
204
|
+
FROM concept c
|
|
205
|
+
WHERE c.domain_id = 'Provider'
|
|
206
|
+
AND c.standard_concept = 'S'
|
|
207
|
+
AND c.concept_name LIKE '%Cardiol%'
|
|
208
|
+
ORDER BY c.concept_name;
|
|
209
|
+
-- 38004451 | Cardiology | Medicare Specialty
|
|
210
|
+
```
|
|
211
|
+
|
|
212
|
+
### 3.3. ETL cho bác sĩ VN
|
|
213
|
+
|
|
214
|
+
```sql
|
|
215
|
+
INSERT INTO provider (
|
|
216
|
+
provider_id,
|
|
217
|
+
provider_name,
|
|
218
|
+
specialty_concept_id,
|
|
219
|
+
care_site_id,
|
|
220
|
+
provider_source_value,
|
|
221
|
+
specialty_source_value
|
|
222
|
+
) VALUES (
|
|
223
|
+
3001,
|
|
224
|
+
NULL, -- De-identify: không lưu tên
|
|
225
|
+
38004451, -- Cardiology
|
|
226
|
+
2003, -- Khoa Tim mạch - BV Bạch Mai
|
|
227
|
+
'BS-BM-TM-001', -- Mã bác sĩ nội bộ
|
|
228
|
+
'TIM_MACH' -- Chuyên khoa nguồn
|
|
229
|
+
);
|
|
230
|
+
```
|
|
231
|
+
|
|
232
|
+
> **De-identification:** Ở VN dữ liệu nghiên cứu thường cần ẩn danh bác sĩ. Set `provider_name = NULL` và chỉ giữ `provider_source_value` mã hóa.
|
|
233
|
+
|
|
234
|
+
---
|
|
235
|
+
|
|
236
|
+
## 4. Quan hệ 3 bảng Health System
|
|
237
|
+
|
|
238
|
+
```
|
|
239
|
+
┌──────────┐
|
|
240
|
+
│ LOCATION │ ← Địa lý (tỉnh, thành phố, tọa độ)
|
|
241
|
+
│ 1001 │
|
|
242
|
+
└────┬─────┘
|
|
243
|
+
│ location_id
|
|
244
|
+
↓
|
|
245
|
+
┌──────────┐
|
|
246
|
+
│CARE_SITE │ ← Cơ sở y tế (BV, Khoa)
|
|
247
|
+
│ 2001 │
|
|
248
|
+
└────┬─────┘
|
|
249
|
+
│ care_site_id
|
|
250
|
+
↓
|
|
251
|
+
┌──────────┐
|
|
252
|
+
│ PROVIDER │ ← Bác sĩ, nhân viên y tế
|
|
253
|
+
│ 3001 │
|
|
254
|
+
└──────────┘
|
|
255
|
+
|
|
256
|
+
Ba bảng này được tham chiếu từ:
|
|
257
|
+
┌───────────────────────┐
|
|
258
|
+
│ PERSON │ ← location_id, care_site_id, provider_id
|
|
259
|
+
│ VISIT_OCCURRENCE │ ← care_site_id, provider_id
|
|
260
|
+
│ CONDITION_OCCURRENCE │ ← provider_id
|
|
261
|
+
│ DRUG_EXPOSURE │ ← provider_id
|
|
262
|
+
│ ... (tất cả bảng │
|
|
263
|
+
│ clinical) │
|
|
264
|
+
└───────────────────────┘
|
|
265
|
+
```
|
|
266
|
+
|
|
267
|
+
---
|
|
268
|
+
|
|
269
|
+
## 5. Truy vấn phân tích
|
|
270
|
+
|
|
271
|
+
### 5.1. Phân bổ bệnh nhân theo cơ sở y tế
|
|
272
|
+
|
|
273
|
+
```sql
|
|
274
|
+
SELECT
|
|
275
|
+
cs.care_site_name,
|
|
276
|
+
c.concept_name AS facility_type,
|
|
277
|
+
COUNT(DISTINCT vo.person_id) AS patient_count,
|
|
278
|
+
COUNT(vo.visit_occurrence_id) AS visit_count
|
|
279
|
+
FROM visit_occurrence vo
|
|
280
|
+
JOIN care_site cs ON vo.care_site_id = cs.care_site_id
|
|
281
|
+
JOIN concept c ON cs.place_of_service_concept_id = c.concept_id
|
|
282
|
+
GROUP BY cs.care_site_name, c.concept_name
|
|
283
|
+
ORDER BY visit_count DESC;
|
|
284
|
+
```
|
|
285
|
+
|
|
286
|
+
### 5.2. Phân tích theo chuyên khoa bác sĩ
|
|
287
|
+
|
|
288
|
+
```sql
|
|
289
|
+
SELECT
|
|
290
|
+
c_spec.concept_name AS specialty,
|
|
291
|
+
COUNT(DISTINCT p.provider_id) AS provider_count,
|
|
292
|
+
COUNT(DISTINCT co.person_id) AS patient_count,
|
|
293
|
+
COUNT(*) AS diagnosis_count
|
|
294
|
+
FROM condition_occurrence co
|
|
295
|
+
JOIN provider p ON co.provider_id = p.provider_id
|
|
296
|
+
JOIN concept c_spec ON p.specialty_concept_id = c_spec.concept_id
|
|
297
|
+
GROUP BY c_spec.concept_name
|
|
298
|
+
ORDER BY diagnosis_count DESC
|
|
299
|
+
LIMIT 10;
|
|
300
|
+
```
|
|
301
|
+
|
|
302
|
+
### 5.3. Phân bố địa lý bệnh nhân (VN)
|
|
303
|
+
|
|
304
|
+
```sql
|
|
305
|
+
SELECT
|
|
306
|
+
l.state AS province_code,
|
|
307
|
+
l.city,
|
|
308
|
+
COUNT(DISTINCT per.person_id) AS patient_count
|
|
309
|
+
FROM person per
|
|
310
|
+
JOIN location l ON per.location_id = l.location_id
|
|
311
|
+
WHERE l.country_concept_id = 4330442 -- Vietnam
|
|
312
|
+
GROUP BY l.state, l.city
|
|
313
|
+
ORDER BY patient_count DESC;
|
|
314
|
+
```
|
|
315
|
+
|
|
316
|
+
---
|
|
317
|
+
|
|
318
|
+
## Tổng kết
|
|
319
|
+
|
|
320
|
+
1. **LOCATION**: địa lý (VN: mã tỉnh 2 ký tự + mã bưu điện)
|
|
321
|
+
2. **CARE_SITE**: cơ sở y tế với `place_of_service_concept_id` phân loại
|
|
322
|
+
3. **PROVIDER**: nhân viên y tế, cần de-identify trong nghiên cứu
|
|
323
|
+
4. Quan hệ: LOCATION → CARE_SITE → PROVIDER (hệ thống phân cấp)
|
|
324
|
+
5. Tất cả bảng lâm sàng đều tham chiếu `provider_id` và `care_site_id`
|
|
325
|
+
|
|
326
|
+
**Bài tiếp theo:** PAYER_PLAN_PERIOD & COST — Chi phí y tế và bảo hiểm.
|
|
327
|
+
|
|
328
|
+
---
|
|
329
|
+
|
|
330
|
+
## Tài liệu tham khảo
|
|
331
|
+
|
|
332
|
+
- [OMOP CDM 5.4 — LOCATION](https://ohdsi.github.io/CommonDataModel/cdm54.html#LOCATION)
|
|
333
|
+
- [OMOP CDM 5.4 — CARE_SITE](https://ohdsi.github.io/CommonDataModel/cdm54.html#CARE_SITE)
|
|
334
|
+
- [OMOP CDM 5.4 — PROVIDER](https://ohdsi.github.io/CommonDataModel/cdm54.html#PROVIDER)
|
|
@@ -0,0 +1,343 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: 019f1a00-a118-7b01-e001-omopcdm54018
|
|
3
|
+
title: "Bài 18: PAYER_PLAN_PERIOD & COST — Chi phí y tế và bảo hiểm"
|
|
4
|
+
slug: bai-18-payer-plan-period-cost
|
|
5
|
+
description: >-
|
|
6
|
+
PAYER_PLAN_PERIOD theo dõi quyền lợi bảo hiểm,
|
|
7
|
+
COST ghi nhận chi phí từng sự kiện lâm sàng.
|
|
8
|
+
Ứng dụng cho phân tích BHXH/BHYT tại Việt Nam.
|
|
9
|
+
duration_minutes: 45
|
|
10
|
+
is_free: true
|
|
11
|
+
video_url: null
|
|
12
|
+
sort_order: 18
|
|
13
|
+
section_title: "Phần 6: Health System, Economics & Derived Elements"
|
|
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-omop18" 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-omop18)"/>
|
|
28
|
+
<g>
|
|
29
|
+
<circle cx="720" cy="100" r="22" fill="#818cf8" opacity="0.12"/>
|
|
30
|
+
<circle cx="820" cy="130" r="26" fill="#818cf8" opacity="0.08"/>
|
|
31
|
+
<circle cx="900" cy="90" r="18" fill="#818cf8" opacity="0.07"/>
|
|
32
|
+
<line x1="650" y1="140" x2="1100" y2="250" stroke="#818cf8" stroke-width="0.5" opacity="0.1"/>
|
|
33
|
+
</g>
|
|
34
|
+
<rect x="60" y="50" width="4" height="60" rx="2" fill="#818cf8"/>
|
|
35
|
+
<rect x="80" y="50" width="130" height="28" rx="14" fill="#818cf8" opacity="0.15"/>
|
|
36
|
+
<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 18</text>
|
|
37
|
+
<text x="60" y="140" font-family="system-ui,-apple-system,sans-serif" font-size="34" font-weight="700" fill="#f1f5f9">
|
|
38
|
+
<tspan x="60" dy="0">PAYER_PLAN_PERIOD &</tspan>
|
|
39
|
+
<tspan x="60" dy="42">COST — Chi phí y tế</tspan>
|
|
40
|
+
</text>
|
|
41
|
+
<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>
|
|
42
|
+
<text x="60" y="268" font-family="system-ui,-apple-system,sans-serif" font-size="13" fill="#64748b" opacity="0.6">Phần 6: Health System, Economics & Derived Elements</text>
|
|
43
|
+
<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>
|
|
44
|
+
</svg>
|
|
45
|
+
|
|
46
|
+

|
|
47
|
+
|
|
48
|
+
## Giới thiệu
|
|
49
|
+
|
|
50
|
+
Nhóm **Health Economics Data** gồm bảng **PAYER_PLAN_PERIOD** (quyền lợi bảo hiểm) và **COST** (chi phí từng dịch vụ). Ở VN, phần này map với dữ liệu **BHYT** (Bảo hiểm Y tế) và bảng thanh toán viện phí.
|
|
51
|
+
|
|
52
|
+
---
|
|
53
|
+
|
|
54
|
+
## 1. PAYER_PLAN_PERIOD — Thời gian bảo hiểm
|
|
55
|
+
|
|
56
|
+
### 1.1. Cấu trúc bảng
|
|
57
|
+
|
|
58
|
+
| Cột | Kiểu | Bắt buộc | Mô tả |
|
|
59
|
+
|-----|------|----------|-------|
|
|
60
|
+
| `payer_plan_period_id` | INTEGER | ✅ PK | ID duy nhất |
|
|
61
|
+
| `person_id` | INTEGER | ✅ | FK → PERSON |
|
|
62
|
+
| `payer_plan_period_start_date` | DATE | ✅ | Ngày bắt đầu |
|
|
63
|
+
| `payer_plan_period_end_date` | DATE | ✅ | Ngày kết thúc |
|
|
64
|
+
| `payer_concept_id` | INTEGER | | Đơn vị chi trả (FK → CONCEPT) |
|
|
65
|
+
| `payer_source_value` | VARCHAR(50) | | Mã nguồn payer |
|
|
66
|
+
| `payer_source_concept_id` | INTEGER | | FK → CONCEPT |
|
|
67
|
+
| `plan_concept_id` | INTEGER | | Loại gói bảo hiểm |
|
|
68
|
+
| `plan_source_value` | VARCHAR(50) | | Mã nguồn plan |
|
|
69
|
+
| `plan_source_concept_id` | INTEGER | | FK → CONCEPT |
|
|
70
|
+
| `sponsor_concept_id` | INTEGER | | Nhà tài trợ |
|
|
71
|
+
| `sponsor_source_value` | VARCHAR(50) | | Mã nguồn sponsor |
|
|
72
|
+
| `sponsor_source_concept_id` | INTEGER | | FK → CONCEPT |
|
|
73
|
+
| `family_source_value` | VARCHAR(50) | | Mã gia đình |
|
|
74
|
+
| `stop_reason_concept_id` | INTEGER | | Lý do ngừng |
|
|
75
|
+
| `stop_reason_source_value` | VARCHAR(50) | | Mã lý do nguồn |
|
|
76
|
+
| `stop_reason_source_concept_id` | INTEGER | | FK → CONCEPT |
|
|
77
|
+
|
|
78
|
+
### 1.2. Mapping BHYT Việt Nam
|
|
79
|
+
|
|
80
|
+
```
|
|
81
|
+
Nguồn VN (BHXH) → OMOP CDM
|
|
82
|
+
─────────────────────────────────────────────
|
|
83
|
+
Mã thẻ BHYT: DN4-01-001 → payer_source_value
|
|
84
|
+
Loại đối tượng: Hưu trí → payer_concept_id
|
|
85
|
+
Ngày cấp: 01/01/2024 → payer_plan_period_start_date
|
|
86
|
+
Ngày hết hạn: 31/12/2024 → payer_plan_period_end_date
|
|
87
|
+
Nơi ĐKKCB: BV Bạch Mai → plan_source_value
|
|
88
|
+
BHXH Hà Nội → sponsor_source_value
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
### 1.3. ETL ví dụ
|
|
92
|
+
|
|
93
|
+
```sql
|
|
94
|
+
INSERT INTO payer_plan_period (
|
|
95
|
+
payer_plan_period_id,
|
|
96
|
+
person_id,
|
|
97
|
+
payer_plan_period_start_date,
|
|
98
|
+
payer_plan_period_end_date,
|
|
99
|
+
payer_concept_id,
|
|
100
|
+
payer_source_value,
|
|
101
|
+
plan_source_value,
|
|
102
|
+
sponsor_source_value
|
|
103
|
+
) VALUES (
|
|
104
|
+
5001,
|
|
105
|
+
100001,
|
|
106
|
+
'2024-01-01',
|
|
107
|
+
'2024-12-31',
|
|
108
|
+
0, -- Concept cho BHYT VN (cần mapping)
|
|
109
|
+
'DN4-01-001', -- Mã thẻ BHYT
|
|
110
|
+
'BV-BACHMAI-001', -- Nơi ĐKKCB ban đầu
|
|
111
|
+
'BHXH_HANOI' -- Cơ quan BHXH
|
|
112
|
+
);
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
### 1.4. Kiểm tra overlap
|
|
116
|
+
|
|
117
|
+
```sql
|
|
118
|
+
-- BN có nhiều giai đoạn BHYT chồng chéo?
|
|
119
|
+
SELECT
|
|
120
|
+
p1.person_id,
|
|
121
|
+
p1.payer_plan_period_start_date AS start_1,
|
|
122
|
+
p1.payer_plan_period_end_date AS end_1,
|
|
123
|
+
p2.payer_plan_period_start_date AS start_2,
|
|
124
|
+
p2.payer_plan_period_end_date AS end_2
|
|
125
|
+
FROM payer_plan_period p1
|
|
126
|
+
JOIN payer_plan_period p2
|
|
127
|
+
ON p1.person_id = p2.person_id
|
|
128
|
+
AND p1.payer_plan_period_id < p2.payer_plan_period_id
|
|
129
|
+
AND p1.payer_plan_period_start_date <= p2.payer_plan_period_end_date
|
|
130
|
+
AND p2.payer_plan_period_start_date <= p1.payer_plan_period_end_date;
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
---
|
|
134
|
+
|
|
135
|
+
## 2. COST — Chi phí dịch vụ y tế
|
|
136
|
+
|
|
137
|
+
### 2.1. Cấu trúc bảng
|
|
138
|
+
|
|
139
|
+
| Cột | Kiểu | Bắt buộc | Mô tả |
|
|
140
|
+
|-----|------|----------|-------|
|
|
141
|
+
| `cost_id` | INTEGER | ✅ PK | ID duy nhất |
|
|
142
|
+
| `cost_event_id` | INTEGER | ✅ | FK → clinical event PK |
|
|
143
|
+
| `cost_domain_id` | VARCHAR(20) | ✅ | Domain của event (Visit, Drug...) |
|
|
144
|
+
| `cost_type_concept_id` | INTEGER | ✅ | Loại (charge/cost/payment) |
|
|
145
|
+
| `currency_concept_id` | INTEGER | | Đơn vị tiền tệ |
|
|
146
|
+
| `total_charge` | FLOAT | | Tổng phí |
|
|
147
|
+
| `total_cost` | FLOAT | | Tổng chi phí |
|
|
148
|
+
| `total_paid` | FLOAT | | Tổng đã thanh toán |
|
|
149
|
+
| `paid_by_payer` | FLOAT | | BHYT chi trả |
|
|
150
|
+
| `paid_by_patient` | FLOAT | | BN tự trả |
|
|
151
|
+
| `paid_patient_copay` | FLOAT | | Đồng chi trả |
|
|
152
|
+
| `paid_patient_coinsurance` | FLOAT | | Đồng bảo hiểm |
|
|
153
|
+
| `paid_patient_deductible` | FLOAT | | Khoản khấu trừ |
|
|
154
|
+
| `paid_by_primary` | FLOAT | | BH chính chi trả |
|
|
155
|
+
| `paid_ingredient_cost` | FLOAT | | Chi phí hoạt chất |
|
|
156
|
+
| `paid_dispensing_fee` | FLOAT | | Phí bán thuốc |
|
|
157
|
+
| `payer_plan_period_id` | INTEGER | | FK → PAYER_PLAN_PERIOD |
|
|
158
|
+
| `amount_allowed` | FLOAT | | Mức cho phép |
|
|
159
|
+
| `revenue_code_concept_id` | INTEGER | | Mã doanh thu |
|
|
160
|
+
| `revenue_code_source_value` | VARCHAR(50) | | Mã doanh thu nguồn |
|
|
161
|
+
| `drg_concept_id` | INTEGER | | DRG group |
|
|
162
|
+
| `drg_source_value` | VARCHAR(3) | | Mã DRG nguồn |
|
|
163
|
+
|
|
164
|
+
### 2.2. Cách COST hoạt động: polymorphic FK
|
|
165
|
+
|
|
166
|
+
```
|
|
167
|
+
cost_event_id + cost_domain_id → xác định bảng nguồn
|
|
168
|
+
|
|
169
|
+
cost_domain_id = 'Visit' → visit_occurrence.visit_occurrence_id
|
|
170
|
+
cost_domain_id = 'Drug' → drug_exposure.drug_exposure_id
|
|
171
|
+
cost_domain_id = 'Procedure' → procedure_occurrence.procedure_occurrence_id
|
|
172
|
+
cost_domain_id = 'Device' → device_exposure.device_exposure_id
|
|
173
|
+
```
|
|
174
|
+
|
|
175
|
+
> **Quan trọng:** Không có FK cứng — bạn cần JOIN theo `cost_event_id` = PK của bảng tương ứng VÀ `cost_domain_id` khớp domain.
|
|
176
|
+
|
|
177
|
+
### 2.3. ETL chi phí khám bệnh VN
|
|
178
|
+
|
|
179
|
+
```sql
|
|
180
|
+
-- Chi phí 1 lượt khám ngoại trú
|
|
181
|
+
INSERT INTO cost (
|
|
182
|
+
cost_id,
|
|
183
|
+
cost_event_id,
|
|
184
|
+
cost_domain_id,
|
|
185
|
+
cost_type_concept_id,
|
|
186
|
+
currency_concept_id,
|
|
187
|
+
total_charge,
|
|
188
|
+
total_paid,
|
|
189
|
+
paid_by_payer, -- BHYT trả
|
|
190
|
+
paid_by_patient, -- BN tự trả
|
|
191
|
+
payer_plan_period_id
|
|
192
|
+
) VALUES (
|
|
193
|
+
7001,
|
|
194
|
+
4001, -- visit_occurrence_id
|
|
195
|
+
'Visit',
|
|
196
|
+
32810, -- EHR charge (Type Concept)
|
|
197
|
+
44818568, -- Vietnamese Dong (VND)
|
|
198
|
+
2500000, -- 2.5 triệu VNĐ tổng phí
|
|
199
|
+
2500000, -- Đã thanh toán hết
|
|
200
|
+
2000000, -- BHYT trả 80%
|
|
201
|
+
500000, -- BN trả 20%
|
|
202
|
+
5001 -- payer_plan_period_id
|
|
203
|
+
);
|
|
204
|
+
```
|
|
205
|
+
|
|
206
|
+
### 2.4. Mapping phí BHYT theo tỷ lệ
|
|
207
|
+
|
|
208
|
+
```
|
|
209
|
+
Tỷ lệ BHYT VN:
|
|
210
|
+
──────────────────────────────────────────
|
|
211
|
+
Đúng tuyến, KCB ban đầu → 80% (hưu trí: 95%)
|
|
212
|
+
Trái tuyến tỉnh → 60%
|
|
213
|
+
Trái tuyến TW → 40%
|
|
214
|
+
Cấp cứu → 100%
|
|
215
|
+
──────────────────────────────────────────
|
|
216
|
+
|
|
217
|
+
Trong COST:
|
|
218
|
+
- total_charge = tổng viện phí
|
|
219
|
+
- paid_by_payer = total_charge × tỷ_lệ_BHYT
|
|
220
|
+
- paid_by_patient = total_charge - paid_by_payer
|
|
221
|
+
- paid_patient_copay = phần đồng chi trả theo quy định
|
|
222
|
+
```
|
|
223
|
+
|
|
224
|
+
---
|
|
225
|
+
|
|
226
|
+
## 3. Truy vấn phân tích kinh tế
|
|
227
|
+
|
|
228
|
+
### 3.1. Tổng chi phí theo loại dịch vụ
|
|
229
|
+
|
|
230
|
+
```sql
|
|
231
|
+
SELECT
|
|
232
|
+
cost.cost_domain_id AS service_type,
|
|
233
|
+
COUNT(*) AS event_count,
|
|
234
|
+
SUM(cost.total_charge) AS total_charges,
|
|
235
|
+
SUM(cost.paid_by_payer) AS insurance_paid,
|
|
236
|
+
SUM(cost.paid_by_patient) AS patient_paid,
|
|
237
|
+
ROUND(
|
|
238
|
+
SUM(cost.paid_by_payer) * 100.0 / NULLIF(SUM(cost.total_charge), 0),
|
|
239
|
+
1
|
|
240
|
+
) AS insurance_coverage_pct
|
|
241
|
+
FROM cost
|
|
242
|
+
GROUP BY cost.cost_domain_id
|
|
243
|
+
ORDER BY total_charges DESC;
|
|
244
|
+
```
|
|
245
|
+
|
|
246
|
+
### 3.2. Chi phí thuốc theo nhóm hoạt chất
|
|
247
|
+
|
|
248
|
+
```sql
|
|
249
|
+
SELECT
|
|
250
|
+
c_ing.concept_name AS ingredient,
|
|
251
|
+
COUNT(DISTINCT de.person_id) AS patient_count,
|
|
252
|
+
SUM(cost.total_charge) AS total_drug_cost,
|
|
253
|
+
ROUND(
|
|
254
|
+
SUM(cost.total_charge) / COUNT(DISTINCT de.person_id),
|
|
255
|
+
0
|
|
256
|
+
) AS cost_per_patient
|
|
257
|
+
FROM cost
|
|
258
|
+
JOIN drug_exposure de
|
|
259
|
+
ON cost.cost_event_id = de.drug_exposure_id
|
|
260
|
+
AND cost.cost_domain_id = 'Drug'
|
|
261
|
+
JOIN concept_ancestor ca
|
|
262
|
+
ON de.drug_concept_id = ca.descendant_concept_id
|
|
263
|
+
JOIN concept c_ing
|
|
264
|
+
ON ca.ancestor_concept_id = c_ing.concept_id
|
|
265
|
+
AND c_ing.concept_class_id = 'Ingredient'
|
|
266
|
+
AND c_ing.standard_concept = 'S'
|
|
267
|
+
GROUP BY c_ing.concept_name
|
|
268
|
+
ORDER BY total_drug_cost DESC
|
|
269
|
+
LIMIT 20;
|
|
270
|
+
```
|
|
271
|
+
|
|
272
|
+
### 3.3. So sánh chi phí đúng tuyến vs trái tuyến
|
|
273
|
+
|
|
274
|
+
```sql
|
|
275
|
+
SELECT
|
|
276
|
+
CASE
|
|
277
|
+
WHEN pp.plan_source_value = cs.care_site_source_value
|
|
278
|
+
THEN 'Đúng tuyến'
|
|
279
|
+
ELSE 'Trái tuyến'
|
|
280
|
+
END AS referral_type,
|
|
281
|
+
COUNT(DISTINCT vo.person_id) AS patient_count,
|
|
282
|
+
AVG(cost.total_charge) AS avg_charge,
|
|
283
|
+
AVG(cost.paid_by_payer) AS avg_insurance,
|
|
284
|
+
AVG(cost.paid_by_patient) AS avg_patient_pay
|
|
285
|
+
FROM cost
|
|
286
|
+
JOIN visit_occurrence vo
|
|
287
|
+
ON cost.cost_event_id = vo.visit_occurrence_id
|
|
288
|
+
AND cost.cost_domain_id = 'Visit'
|
|
289
|
+
JOIN care_site cs ON vo.care_site_id = cs.care_site_id
|
|
290
|
+
JOIN payer_plan_period pp
|
|
291
|
+
ON vo.person_id = pp.person_id
|
|
292
|
+
AND vo.visit_start_date BETWEEN pp.payer_plan_period_start_date
|
|
293
|
+
AND pp.payer_plan_period_end_date
|
|
294
|
+
GROUP BY referral_type;
|
|
295
|
+
```
|
|
296
|
+
|
|
297
|
+
---
|
|
298
|
+
|
|
299
|
+
## 4. ER Diagram — Health Economics
|
|
300
|
+
|
|
301
|
+
```
|
|
302
|
+
┌──────────────────┐
|
|
303
|
+
│PAYER_PLAN_PERIOD │
|
|
304
|
+
│ │
|
|
305
|
+
│ person_id ──────→│ PERSON
|
|
306
|
+
│ payer_concept_id │
|
|
307
|
+
│ plan_concept_id │
|
|
308
|
+
│ start_date │
|
|
309
|
+
│ end_date │
|
|
310
|
+
└────────┬─────────┘
|
|
311
|
+
│ payer_plan_period_id
|
|
312
|
+
↓
|
|
313
|
+
┌──────────────────┐
|
|
314
|
+
│ COST │
|
|
315
|
+
│ │ ┌─── VISIT_OCCURRENCE
|
|
316
|
+
│ cost_event_id ──→│────────├─── DRUG_EXPOSURE
|
|
317
|
+
│ cost_domain_id │ ├─── PROCEDURE_OCCURRENCE
|
|
318
|
+
│ total_charge │ └─── DEVICE_EXPOSURE
|
|
319
|
+
│ paid_by_payer │
|
|
320
|
+
│ paid_by_patient │
|
|
321
|
+
│ currency_id │
|
|
322
|
+
└──────────────────┘
|
|
323
|
+
```
|
|
324
|
+
|
|
325
|
+
---
|
|
326
|
+
|
|
327
|
+
## Tổng kết
|
|
328
|
+
|
|
329
|
+
1. **PAYER_PLAN_PERIOD**: ghi nhận thời gian bảo hiểm (VN: thẻ BHYT, mã ĐKKCB)
|
|
330
|
+
2. **COST**: chi phí từng sự kiện, dùng polymorphic FK (`cost_event_id` + `cost_domain_id`)
|
|
331
|
+
3. **VN mapping**: `paid_by_payer` = phần BHYT, `paid_by_patient` = phần tự chi trả
|
|
332
|
+
4. COST hỗ trợ phân tích hiệu quả chi phí, so sánh đúng/trái tuyến
|
|
333
|
+
5. `currency_concept_id` = 44818568 cho VND
|
|
334
|
+
|
|
335
|
+
**Bài tiếp theo:** CONDITION_ERA, DRUG_ERA, DOSE_ERA — Bảng tổng hợp tự động.
|
|
336
|
+
|
|
337
|
+
---
|
|
338
|
+
|
|
339
|
+
## Tài liệu tham khảo
|
|
340
|
+
|
|
341
|
+
- [OMOP CDM 5.4 — PAYER_PLAN_PERIOD](https://ohdsi.github.io/CommonDataModel/cdm54.html#PAYER_PLAN_PERIOD)
|
|
342
|
+
- [OMOP CDM 5.4 — COST](https://ohdsi.github.io/CommonDataModel/cdm54.html#COST)
|
|
343
|
+
- [Book of OHDSI — Health Economics chapter](https://ohdsi.github.io/TheBookOfOhdsi/)
|