PFT (Pulmonary Function Tests) — Spirometry, Lung Volume & DLCO
📖 Source: รศ.นพ.ณรงค์กร ซ้ายโพธิ์กลาง — หน่วยโรคระบบการหายใจและเวชบำบัดวิกฤต ภาควิชาอายุรศาสตร์ มธ. (15-02-67) | Guideline: ATS/ERS 2019 update
🫁 Overview of PFTs
PFTs ประกอบด้วยการตรวจหลายชนิด ได้แก่ Spirometry, Lung volume, DLCO, Respiratory muscle strength (PImax/PEmax), Bronchoprovocative testing (Methacholine challenge), CPET, ABG, P0.1, IOS, และ FeNO
Respiratory muscle strength ค่าปกติ:
- PImax (MIP/NIF): ชาย −90, หญิง −50 cmH₂O
- PEmax: ชาย 120, หญิง 60 cmH₂O
- PEmax > PImax เนื่องจาก abdominal + internal intercostal muscle แข็งแรงกว่า
Methacholine challenge test: PC₂₀ < 8 mg/mL = positive airway hyperresponsiveness (AHR)
FeNO: <25 ppb = asthma ควบคุมได้, >50 ppb = ควบคุมไม่ได้ (gray zone 25–50); บ่งบอก eosinophilic airway inflammation
🌬️ Spirometry
Indications for Spirometry
- Diagnose or exclude lung disease (esp. COPD, asthma)
- Assess severity และ monitor disease progression
- Assess response to therapeutic intervention
- Preoperative assessment (FEV₁ ≥60%pred → ผ่าตัดได้)
- Occupational/environmental exposure (silicosis, asbestosis, chemical plant explosion)
- Evaluate disability or impairment
- Epidemiologic/clinical research
Contraindications (ATS/ERS 2019)
- Recent surgery: eye ≤1 wk; brain/thoracic/abdominal ≤4 wks
- Thoracic, abdominal, cerebral aneurysm (เสี่ยงแตก)
- Active hemoptysis หรือ respiratory infection (URI ผลดีขึ้นก่อน → ป้องกัน spread)
- Pneumothorax
- Acute MI ≤1 wk
- Significant arrhythmia (uncontrolled AF/VT/VF) หรือ severe CHF / PE / PH
- Uncontrolled HTN: MAP >130 mmHg (≈ SBP ≥220 / DBP >100)
- Pregnancy (late pregnancy / เสี่ยงแท้ง — ถ้า suspect asthma ให้ยาไปก่อน แล้วตรวจหลัง ICS+LABA)
สิ่งที่ต้องหลีกเลี่ยงก่อนตรวจ (ATS/ERS 2019)
- สูบบุหรี่ <1 h (broncoconstrictor → false positive obstruction)
- ดื่มแอลกอฮอล์/สารมึนเมา <8 h
- ออกกำลังกายหนัก <1 h (เหนื่อย → ddx exercise-induced bronchospasm)
- เสื้อผ้าที่รัดแน่นมาก
Bronchodilator Withholding (ATS/ERS 2019)
| BD Medication | Example | Withhold |
|---|---|---|
| SABA | salbutamol | 4–6 h |
| SAMA | ipratropium bromide | 12 h |
| LABA | formoterol, salmeterol | 24 h |
| Ultra-LABA | indacaterol, vilanterol, olodaterol | 36 h |
| LAMA | tiotropium, umeclidinium, glycopyrronium | 36–48 h |
⚠️ Short-cut: ถ้าทราบ diagnosis อยู่แล้ว (COPD/asthma on treatment) ไม่จำเป็นต้องหยุด BD
Quality Control
Acceptability criteria (ดู Volume-Time curve)
- Good start ไม่มี hesitation (กราฟแรกไม่ลึก)
- ไม่มี coughing / air leak
- Achieve EOFE (end of forced expiration): plateau >1 sec หรือ duration ≥15 sec หรือ FVC test หลัง ≥ FVC test ก่อน
Reproducibility criteria
- FVC และ FEV₁ สองค่าสูงสุด ต่างกัน ≤150 mL (50 cc = ✓, ต่างกัน 0.95 ≈ borderline)
- Acceptable efforts: 3 (min) to 8 (max) — pre 3 ครั้ง, post 3 ครั้ง
Reported values
| Parameter | ค่าที่รายงาน |
|---|---|
| FVC | Highest value จาก acceptable trials |
| FEV₁ | Highest value จาก acceptable trials |
| PEF | Best test curve = highest sum of FVC+FEV₁ |
| FEF₂₅₋₇₅ | Best test curve = highest sum of FVC+FEV₁ |
Spirogram morphology patterns
| Pattern | Volume-Time | Cause |
|---|---|---|
| Normal | plateau ~6 sec | — |
| Early hesitation | ช่วงแรกไม่ทะลง | poor start |
| Poor effort | rounded peak, ต่ำ | ไม่ตั้งใจ/ไม่แข็งแรง |
| Early termination | plateau เร็วมาก | glottis closure / tongue obstruction / restrictive |
| Cough | notch บน curve | — |
| Young female (knee) | knee appearance | normal variant |
Parameters
FEV₁ & FVC
- FVC (Forced Vital Capacity): volume ทั้งหมดที่เป่าออกแรงสุด
- FEV₁ (Forced Expiratory Volume in 1 sec): volume ที่เป่าออกใน 1 วินาที — ปกติ ~80–90% ของ FVC
- Volume-Time curve: แกน X = time, แกน Y = volume; EOFE = จุดที่ plateau
FEF₂₅₋₇₅ (MMEF)
- = forced expiratory flow ระหว่าง 25–75% ของ FVC
- Effort-independent zone — แรงเป่าไม่มีผลต่อการไหลออกของลม
- บ่งบอก small airway function (peripheral airway)
- ค่าต่ำเจอใน early asthma / early COPD
- Normal: ≥65%pred
PEF (Peak Expiratory Flow)
- Effort-dependent — ขึ้นกับความพยายาม
- ใช้ตรวจ variability ที่บ้าน: Max−Min / ½(Max+Min) → ≥10% = significant variation
Lower Limit of Normal (LLN)
- LLN = 5th percentile = X − 1.65 SD ของประชากร
- Fixed ratio 0.7 มีข้อจำกัด: false positive ในผู้สูงอายุ (over-diagnose COPD), false negative ในคนอายุน้อย
- ATS/ERS แนะนำ LLN; PRIsm ใช้ LLN
- Predicted value ขึ้นกับ: Race (Caucasian > Asian), Sex (ชาย > หญิง), Age (↑อายุ → LF↓), Height (↑ส่วนสูง → LF↑) — ไม่ขึ้นกับ weight
ค่าปกติ: 80–120%pred (สำหรับ FVC); ยกเว้น FEV₁/FVC >90%pred, FEF₂₅₋₇₅ >65%pred = normal
Spirometry Interpretation Algorithm (Step-by-Step)
Step 1 — Acceptability: ดู Volume-Time curve (plateau ≥1 sec, duration ≥15 sec)
Step 2 — Morphology: Flow-volume loop
- Scooping/scooped-out pattern → Obstruction
- Narrow-based → Restriction
- BD response → reversibility
Step 3 — Obstruction:
- FEV₁/FVC < 70% (age ≥40) หรือ <75% (age <40) หรือ <LLN
Step 4 — ถ้า obstruction + FVC <80%pred: คำนวณ Corrected FVC
- Corrected FVC = FVC%pred + (70 − FEV₁/FVC%)
- Corrected FVC >80% → Pure obstruction
- Corrected FVC <80% → Mixed obstruction + Restriction
Step 5 — Restriction:
- FVC <80%pred หรือ <LLN (ยืนยันด้วย TLC)
Step 6 — Severity (FEV₁ %pred):
| Grade | FEV₁ %pred | Z-score |
|---|---|---|
| Mild | >70 | −1.65 ถึง −2.5 |
| Moderate | 60–69 | −2.51 ถึง −4.0 |
| Moderately severe | 50–59 | — |
| Severe | 35–49 | < −4.1 |
| Very severe | <35 | — |
COPD severity ใช้ post-BD FEV₁: GOLD grading = 80 / 50 / 30
Step 7 — BD response:
- ↑FEV₁ หรือ FVC ≥12% AND 200 mL (หรือ >10%pred)
- มี BD response → mostly Asthma / reversible obstruction
- ไม่มี BD response → mostly COPD (แต่ COPD บางส่วนมี response ได้ ~20%)
- Ratio ปกติหมด + มี BD response = Asthma ที่ควบคุมดีหรือ severe (ratio กลับมา normal แล้ว)
Step 8 — Small Airway Disease:
- Ratio ปกติ, FVC ปกติ, แต่ FEF₂₅₋₇₅ <65%pred → Early asthma / Early COPD
Complete PFT Interpretation Flowchart
FEV₁/FVC ≥ LLN (normal)
├── FVC ≥ LLN → Normal → confirm DLCO ≥ LLN
│ ├── DLCO normal → NORMAL
│ └── DLCO low → Pulmonary vascular disease (PH, PE)
└── FVC < LLN → TLC?
├── TLC ≥ LLN → ดูต่อ (อาจเป็น pseudo-restriction)
└── TLC < LLN → RESTRICTION → DLCO?
├── DLCO normal → NMD / Chest wall disease
└── DLCO low → ILD (intrapulmonary restrictive)
FEV₁/FVC < LLN (obstruction)
├── FVC ≥ LLN → Pure OBSTRUCTION → DLCO?
│ ├── DLCO normal → Asthma / Chronic bronchitis
│ └── DLCO low → Emphysema (COPD)
└── FVC < LLN → TLC?
├── TLC ≥ LLN → OBSTRUCTION (confirmed, pseudo-low FVC)
└── TLC < LLN → MIXED (obstruction + restriction)
Upper Airway Obstruction (UAO)
UAO แบ่งตาม anatomy: vocal cord ลงมาถึง main bronchus (spirometry บอกตำแหน่งได้เป็น physiology localization)
| Type | Pattern | FEF₅₀/FIF₅₀ | Examples |
|---|---|---|---|
| Intrathoracic UAO | Expiratory plateau (ตัดบน) | <1 | Tracheomalacia (below sternal notch), polychondritis/EGPA, Wegener’s granulomatosis, tracheal/main bronchial tumor |
| Extrathoracic UAO | Inspiratory plateau (ตัดล่าง) | >1 | Vocal cord paralysis (uni/bilateral), goiter (above sternal notch), ALS, post-polio, airway burn, extrathoracic tracheomalacia |
| Fixed UAO | Both plateaus (box shape) | ≈1 | Fixed vocal cord lesion, large goiter, benign stricture, foreign body, endotracheal tumors, bronchial stenosis |
| Main bronchial obstruction | Biphasic flow-volume loop | variable | Partial obstruction right/left main bronchus (tumor) — มีทั้งขาเข้าและขาออก + scooping |
Physiological basis:
- Intrathoracic: expiration → Ppl ↑ (positive) → Ptr < Ppl → airway collapse → expiratory plateau
- Extrathoracic: inspiration → Patm negative → Ptr < Patm → airway collapse → inspiratory plateau
- Fixed: rigid obstruction → ทั้ง 2 phase plateau (บอกไม่ได้ว่า intra หรือ extra)
📦 Lung Volume
Indications
- Diagnose/assess severity ของ restrictive lung disease (reduced TLC)
- แยก obstructive vs. restrictive pattern (ยืนยัน restriction ด้วย TLC <LLN)
- Assess response to therapy (BD, steroids, lung surgery, RT/CMT)
- Preoperative assessment ในคนที่ lung function บกพร่อง
- Determine extent of hyperinflation (TLC >120%)
- Assess gas trapping: plethysmographic vs. gas dilution lung volumes (FRCpleth > FRCN₂ = gas trapping)
Lung Volumes and Capacities
ประกอบด้วย 4 volumes + 4 capacities:
- IRV (Inspiratory Reserve Volume): สูดเพิ่มสูงสุด ~2500 mL
- VT (Tidal Volume): ~500 mL (1/4 ของ IC)
- ERV (Expiratory Reserve Volume): หายใจออกสูงสุดจาก FRC
- RV (Residual Volume): ~25% TLC — spirometry วัดไม่ได้
- IC = IRV + VT
- VC (FVC) = IRV + VT + ERV
- FRC = ERV + RV (~50% TLC)
- TLC = IRV + VT + ERV + RV (~6 L)
Measurement Methods
| Feature | Body Plethysmography | Multiple-Breath N₂ Washout |
|---|---|---|
| Principle | Boyle’s law: P₁V₁ = P₂V₂ (วัด FRCpleth ก่อน → คำนวณ TLC, RV) | Wash out N₂ ด้วย O₂ 100% จนเหลือ <1.5% ภายใน 3–4 min (test fail >7 min) |
| Alveoli measured | Ventilated + non-ventilated ✅ | เฉพาะ ventilated เท่านั้น (FRC_N₂ < FRC_pleth เพราะ N₂ ค้างในถุงลมที่ปิด) |
| Standard | ✅ Gold standard | ❌ ไม่ใช่ standard |
| Cost/ease | แพง / ต้องฝึก technician | ถูก / ง่าย |
Body Plethysmography steps: quiet breathing → shutter closed (วัด Boyle’s law) → shutter open → FVC maneuver → collect VC, IC, ERV → คำนวณ FRC, RV, TLC
Normal & Abnormal Lung Volume Patterns
ปกติ TLC: 80–120%pred
- TLC >120% = hyperinflation (emphysema/obstruction)
- TLC >155% post-BD = confirmed static hyperinflation
Severity ของ reduced TLC:
| Grade | TLC %pred |
|---|---|
| Mild | 70–79 |
| Moderate | 60–69 |
| Severe | <60 |
Specific PFT patterns ตามโรค:
| Condition | RV/TLC | TLC | RV | DLCO | หมายเหตุ |
|---|---|---|---|---|---|
| Elderly (normal) | ↑ | ↔ | ↑ | — | aging → small airway collapse |
| Early emphysema | ↑ | ↑ slightly | ↑ | ↓ | air trapping เริ่ม |
| Severe emphysema (COPD) | ↑↑ | ↑↑ (>155%) | ↑↑ | ↓↓ | alveolar destruction |
| Pulmonary fibrosis (ILD) | ↔ | ↓ | ↔ | ↓↓ | RV ↔ เพราะ stiff lung limit ทั้งคู่ |
| Neuromuscular disease (MG/GBS) | ↑↑ | ↓ | ↔ | ↔ | RV↑ เพราะหายใจออกเต็มที่ไม่ได้ |
| Severe obesity | ↑ | ↓ | ↔ | ↔ | ERV ↓ isolated (fat กด diaphragm) |
Pearl: Fibrosis / NMD / Chest wall / Obesity → RV ↔, TLC ↓
💨 DLCO (Diffusing Capacity of Lungs for Carbon Monoxide)
Indications
- Evaluate/follow parenchymal lung diseases (ILD, emphysema)
- Pulmonary involvement ใน systemic disease — esp. CNTD (SSc, RA, SLE, myositis)
- Obstructive disease: COPD vs. asthma (DLCO แยกได้)
- Cardiovascular: PH, PE (↓DLCO with normal spirometry)
- Disability associated with ILD
- ↑DLCO → alveolar hemorrhage, polycythemia, L-R shunt
- Preoperative assessment
Principle & Technique
DLCO วัดโดยอาศัยหลัก Diffusion limitation of uptake โดยใช้ 0.3% CO เป็น tracer gas (CO จับ Hb แน่นมาก → P_cCO ≈ 0)
Formula:
- DLCO = V̇CO / (P_A CO − P_C CO)
- 1/DLCO = 1/Dm + 1/θVc (Dm = membrane diffusion, θVc = reaction rate × capillary volume)
KCO = DLCO/VA (transfer coefficient — normalize ต่อ alveolar volume ของ patient)
- Pneumonectomy 1 ข้าง: DLCO ↓50% แต่ KCO ปกติ (เพราะ remaining lung ปกติ)
Single-breath hold technique:
- หายใจออกจนถึง RV
- สูด test gas (CO 0.3%, CH₄ หรือ He tracer, O₂ 21%, N₂ balance) ถึง TLC อย่างรวดเร็ว
- Hold breath ~10 sec
- หายใจออก → washout dead space (≥750 mL) → collect alveolar sample
- วัด inspired vs. expired CO → คำนวณ DLCO = CO ที่ diffuse เข้าไป
Factors Affecting DLCO
| ↓ DLCO | ↑ DLCO |
|---|---|
| ↓Alveolar surface area: lung resection, emphysema, bronchial obstruction | Supine position (↑venous return) |
| Alveocapillary membrane disease: ILD, PH, PE, late CHF, DAD, PAP, consolidation | Exercise, fever (↑CO uptake) |
| Anemia, high COHb, pregnancy | Asthma (↑blood flow) |
| Valsalva maneuver (↑intrathoracic pressure → ↓venous return → ↓pulmonary capillary blood) | Müller maneuver (ตรงข้าม Valsalva) |
| Extrapulmonary restriction (NMD, kyphoscoliosis) | L-R cardiac shunt, early CHF |
| Polycythemia, alveolar hemorrhage | |
| Obesity, high altitude |
Severity ของ Reduced DLCO
| Grade | DLCO %pred |
|---|---|
| Mild | 60–75 |
| Moderate | 40–60 |
| Severe | <40 |
DLCO ใน Clinical Context
KCO ช่วยแยก:
- Intrapulmonary restriction (ILD): DLCO ↓↓, KCO ↓ หรือ ↔ (membrane disease)
- Extrapulmonary restriction (NMD/CW): DLCO ↓/↔, KCO ↑ (capillary bed ปกติ แต่ lung volume เล็ก → KCO = DLCO/VA ดูดีขึ้น)
- Emphysema vs. Asthma: emphysema DLCO ↓↓ (alveolar destruction), asthma DLCO ↔/↑
📊 Summary: Abnormal PFT Patterns
| Characteristic | FEV₁ | VC | Ratio | TLC | DLCO | KCO |
|---|---|---|---|---|---|---|
| Asthma | ↓↓ | ↔/↓ | ↓ | ↑ | ↔/↑ | ↑ |
| COPD (Emphysema) | ↓↓ | ↓ | ↓↓ | ↑ | ↓↓ | ↓↓ |
| Intrapulmonary Restriction (ILD, fibrosis) | ↓ | ↓↓ | ↔/↑ | ↓ | ↓↓ | ↓/↔ |
| Extrapulmonary Restriction (NMD, CW disease) | ↓ | ↓↓ | ↔/↑ | ↓ | ↓/↔ | ↑ |
Key differentiators:
- DLCO ↓↓ + KCO ↑ → extrapulmonary restriction (capillary bed intact แต่ volume เล็ก)
- DLCO ↓↓ + KCO ↓ → intrapulmonary (membrane disease)
- Ratio ↓↓ + TLC ↑ + DLCO ↓↓ → emphysema
- Ratio ↓ + TLC ↑ + DLCO ↔ → asthma / chronic bronchitis
Reference equations available: GLI 2012, Morris Polgar, Siriraj 2000 (Thai) — TU ใช้ GLI 2012 / STD EU
🖼️ Reference Images
Flow-Volume Loop Patterns: Normal vs Obstruction vs Restriction
Flow-Volume Loop Patterns: Normal vs Obstruction vs Restriction

DLCO Alveolar-Capillary Membrane Diagram