
Introduction
Cohort Definition is at the heart of all analysis in ATLAS. A "cohort" is a collection of patients who satisfy specific clinical criteria over a defined period of time.
Before creating a cohort, you need to build Concept Sets — reusable sets of concepts.
1. Concept Sets — Details
1.1 Create Concept Set
ATLAS → Concept Sets → New Concept Set
Ví dụ: "Type 2 Diabetes Conditions"
Bước 1: Search "type 2 diabetes" trong ATLAS
Bước 2: Thêm concepts vào concept set:
┌──────────┬───────────────────────────────┬──────────┬─────────┐
│ Concept │ Name │ Excluded │ Desc. │
├──────────┼───────────────────────────────┼──────────┼─────────┤
│ 201826 │ Type 2 diabetes mellitus │ ☐ │ ☑ │
│ 443238 │ Diabetic neuropathy │ ☐ │ ☐ │
│ 4193704 │ Type 2 DM w/renal compl │ ☐ │ ☐ │
│ 201254 │ Type 1 diabetes mellitus │ ☑ │ ☐ │
└──────────┴───────────────────────────────┴──────────┴─────────┘
Columns giải thích:
- Excluded: ☑ = LOẠI BỎ concept này (exclude Type 1 DM)
- Descendants (Desc.): ☑ = bao gồm tất cả descendants trong hierarchy
- Mapped: ☑ = bao gồm cả non-standard mapped concepts
1.2 Include Descendants — Important
Concept 201826: Type 2 diabetes mellitus (SNOMED)
├── Descendants (khi ☑ Include Descendants):
│ ├── 443238 Diabetic neuropathy
│ ├── 4193704 Type 2 DM with renal complications
│ ├── 4063043 Type 2 DM with ophthalmic complications
│ ├── 443729 Diabetic retinopathy
│ ├── 4128709 Diabetic foot
│ └── ... (hàng trăm descendants)
Best Practice:
- ☑ Include Descendants cho ancestor concepts (Type 2 DM)
→ Tự động bao gồm DM with complications
- ☐ Exclude Descendants cho concepts cần loại bỏ cụ thể
1.3 Resolved Concept Set
ATLAS tab "Included Concepts" → xem danh sách đầy đủ concepts
"Type 2 Diabetes Conditions":
201826 + descendants = 287 concepts included
MINUS 201254 (Type 1 DM) = excluded
= Final: ~285 concepts
→ Đây là tập concepts sẽ dùng trong Cohort Definitions
2. Cohort Definitions
2.1 Cohort Definition Structure
Cohort Definition gồm 4 phần:
1. INITIAL EVENTS (Sự kiện khởi đầu)
→ Sự kiện đưa bệnh nhân vào cohort
→ VD: Lần đầu được chẩn đoán Type 2 DM
2. INCLUSION CRITERIA (Tiêu chí bao gồm)
→ Điều kiện thêm phải thỏa mãn
→ VD: Có ≥ 365 ngày observation trước
3. COHORT EXIT (Rời khỏi cohort)
→ Khi nào bệnh nhân ra khỏi cohort
→ VD: Hết observation period, hoặc fixed duration
4. CENSORING EVENTS (Sự kiện kiểm duyệt)
→ Sự kiện kết thúc follow-up
→ VD: Tử vong, chuyển viện
2.2 Example: New-Onset Type 2 DM Cohort
Mục tiêu: Tìm bệnh nhân Type 2 DM mới khởi phát
INITIAL EVENTS:
Event: Condition Occurrence
Concept Set: "Type 2 Diabetes Conditions"
First occurrence only: ☑ (chỉ lần chẩn đoán đầu tiên)
Timeline:
←── 365 days before ───┤ Index Date ├──── After ────→
│ (first DM │
│ diagnosis) │
INCLUSION CRITERIA:
Criterion 1: "Có observation trước"
Having: Observation Period
At least 365 days BEFORE index date
→ Đảm bảo bệnh nhân có đủ lịch sử
Criterion 2: "Không có DM trước đó"
NOT Having: Condition Occurrence
Concept Set: "Type 2 Diabetes Conditions"
In the 365 days BEFORE index date
→ Loại bỏ bệnh nhân đã có DM trước (new-onset only)
Criterion 3: "Tuổi ≥ 18"
Having: Demographics
Age ≥ 18 at index date
COHORT EXIT:
End of continuous observation period
CENSORING:
Death event
2.3 Create in ATLAS
ATLAS → Cohort Definitions → New Cohort
Tab "Definition":
┌─────────────────────────────────────────────────────────┐
│ Cohort Definition: New-Onset Type 2 DM │
│ │
│ ┌── Cohort Entry Events ──────────────────────────┐ │
│ │ │ │
│ │ Add Initial Event: │ │
│ │ [+ Add Condition Occurrence] │ │
│ │ │ │
│ │ Any condition occurrence of: │ │
│ │ [Type 2 Diabetes Conditions ▼] (Concept Set) │ │
│ │ │ │
│ │ ☑ First occurrence only │ │
│ │ □ Restrict initial events to... │ │
│ └──────────────────────────────────────────────────┘ │
│ │
│ ┌── Inclusion Criteria ───────────────────────────┐ │
│ │ │ │
│ │ ↓ Criterion 1: Has ≥ 365 days prior obs │ │
│ │ ↓ Criterion 2: No prior DM in 365 days │ │
│ │ ↓ Criterion 3: Age ≥ 18 │ │
│ │ │ │
│ │ [+ Add Criterion] │ │
│ └──────────────────────────────────────────────────┘ │
│ │
│ ┌── Cohort Exit ─────────────────────────────────┐ │
│ │ ○ End of observation period │ │
│ │ ○ Fixed duration: ___ days after index │ │
│ │ ○ Custom exit criteria │ │
│ └──────────────────────────────────────────────────┘ │
│ │
│ [💾 Save] [▶ Generate] [📋 Export] [SQL] │
└─────────────────────────────────────────────────────────┘
3. Inclusion Criteria — Details
3.1 Criteria Types
Criteria có thể dựa trên:
Clinical Events:
- Condition Occurrence (chẩn đoán)
- Drug Exposure (thuốc)
- Procedure Occurrence (thủ thuật)
- Measurement (xét nghiệm) — kèm value filter
- Observation (quan sát)
- Visit Occurrence (lượt khám)
- Device Exposure (thiết bị)
Demographics:
- Age (at index date)
- Gender
- Race
- Ethnicity
Temporal:
- Observation Period (trước/sau index date)
3.2 Temporal Logic
Relative to Index Date:
←── Before ───┤ Index ├──── After ────→
Any time before index: (-inf, 0]
Within 365 days before: [-365, 0]
Within 30 days after: [0, 30]
Any time after index: [0, +inf)
Between 30 and 365 after: [30, 365]
Ví dụ: "Dùng Metformin trong 30 ngày sau chẩn đoán DM"
Drug Exposure: Metformin
Time window: [0, 30] days after index
Count: At least 1 occurrence
3.3 Attrition Report
Sau khi Generate cohort, ATLAS hiển thị Attrition:
Total patients: 50,000 (100%)
↓ Has Type 2 DM diagnosis
Has initial event: 8,500 (17%)
↓ First occurrence only
First occurrence: 6,200 (12.4%)
↓ Criterion 1: ≥ 365 days prior obs
After criterion 1: 5,800 (11.6%)
↓ Criterion 2: No prior DM
After criterion 2: 4,500 (9.0%)
↓ Criterion 3: Age ≥ 18
Final cohort: 4,200 (8.4%)
→ Giúp hiểu mỗi criterion loại bao nhiêu bệnh nhân
→ Nếu criterion nào loại quá nhiều → xem lại logic
4. Generate & Execute Cohort
4.1 Generate
ATLAS → Cohort Definition → [▶ Generate]
→ Chọn CDM Source: Hospital XYZ Vietnam
→ WebAPI tạo SQL → Execute trên CDM database
→ Kết quả ghi vào Results schema: COHORT table
COHORT table:
┌──────────────────┬───────────┬────────────────┬──────────────┐
│ cohort_definition│ subject_id│ cohort_start │ cohort_end │
│ _id │ │ _date │ _date │
├──────────────────┼───────────┼────────────────┼──────────────┤
│ 1 │ 12345 │ 2020-03-15 │ 2024-06-30 │
│ 1 │ 23456 │ 2019-11-20 │ 2024-12-31 │
│ 1 │ 34567 │ 2021-07-08 │ 2023-04-15 │
└──────────────────┴───────────┴────────────────┴──────────────┘
4.2 View Generated SQL
ATLAS → Cohort Definition → Tab "SQL"
→ Xem SQL được generate, có thể copy và chạy trực tiếp
Hữu ích cho:
- Debug logic cohort
- Chạy cohort trên database không có WebAPI
- Optimize SQL performance
5. Cohort Design Best Practices
1. Bắt đầu đơn giản, thêm complexity dần
→ Initial event + 1 criterion → verify → thêm criteria
2. Kiểm tra Attrition Report
→ Mỗi criterion nên loại < 50% (nếu loại quá nhiều → xem lại)
3. Dùng Concept Sets (không hardcode concept IDs)
→ Dễ maintain, tái sử dụng, chia sẻ
4. Include Descendants cho ancestor concepts
→ Tránh miss descendants mới khi vocabulary update
5. Washout period cho "new-onset" cohorts
→ Ít nhất 365 ngày trước index date không có event
→ Đảm bảo thực sự là "new onset"
6. Peer review cohort definitions
→ Clinician review clinical logic
→ Data engineer review technical logic
7. Test trên demo data trước
→ atlas-demo.ohdsi.org có synthetic data
→ Verify cohort logic hoạt động đúng
Summary
| Concept | Explanation |
|---|---|
| Concept Set | Collection of reusable concepts (include/exclude descendants) |
| Cohort Definition | Definition of patient group (initial event + criteria + exit) |
| Initial Event | Event that puts a patient in the cohort (first occurrence) |
| Inclusion Criteria | Additional filtering conditions (prior obs, age, no prior event...) |
| Cohort Exit | When do patients drop out of the cohort |
| Attrition Report | Report the number of patients excluded after each criterion |
| Washout Period | The "clean" period before index date |
Next article: ATLAS — Characterization, Incidence Rates & Pathways