Chuyển đến nội dung chính

第 9 課:PROCEDURE_OCCURRENCE — 程序與手術

記錄程序、手術和醫療幹預措施。 SNOMED / CPT4 / ICD-10-PCS 映射,modifier_concept_id,區分程序與測量與藥物,練習越南醫院資料的 ETL。

🏗️ 建築 — 第 9 課 PROCEDURE_OCCURRENCE 過程 程序和手術 初學者的 OMOP CDM 5.4 — 從頭到尾了解 第 3 部分:關鍵臨床事件 亞洲開發網

簡介

PROCEDURE_OCCURRENCE 記錄對患者進行的所有程序、手術和醫療幹預。從簡單的血壓測量到複雜的心臟直視手術——所有這些都在這張表中進行了標準化。本課程將幫助您了解何時使用程序、何時使用測量或藥物。


1.表結構

專欄類型必填說明
procedure_occurrence_id整數✅ PK唯一ID
person_id整數✅ FK病人
procedure_concept_id整數✅標準理念
procedure_date日期✅實施日期
procedure_datetime日期時間日期與時間
procedure_end_date日期結束日期(新 CDM 5.4)
procedure_end_datetime日期時間截止時間
procedure_type_concept_id整數✅資料來源
modifier_concept_id整數新增(左/右,第二個...)
quantity整數執行次數
provider_id整數氟克醫生進行
visit_occurrence_id整數氟克相關訪問
visit_detail_id整數氟克瀏覽詳情
procedure_source_valueVARCHAR(50)原始碼
procedure_source_concept_id整數原創概念
modifier_source_valueVARCHAR(50)原始修改器

CDM 5.4 中的新增功能: procedure_end_date 和 procedure_end_datetime — 對於持續數小時/數天的手術很重要。


2. 程式詞彙

2.1。熱門詞彙

詞彙角色範例
SNOMED CT標準概念闌尾切除術 (44783086)
CPT4美國帳單代碼44970(腹腔鏡闌尾切除術)
ICD-10-PCS美國住院程序0DTJ4ZZ
ICD-9-過程美國遺留程序47.01
HCPCS美國門診服務G0101

2.2。域路由規則

  ICD-10-PCS mã = '0DTJ4ZZ' (Lapar appendectomy)
       │
       │ concept_relationship: Maps to
       ↓
  SNOMED concept_id = 44783086
  concept_name = 'Laparoscopic appendectomy'
  domain_id = 'Procedure'
       │
       └──→ Lưu vào PROCEDURE_OCCURRENCE ✓


  CPT4 mã = '80053' (Basic metabolic panel)
       │
       │ concept_relationship: Maps to
       ↓
  SNOMED concept_id = 3019897
  domain_id = 'Measurement'
       │
       └──→ Lưu vào MEASUREMENT ✗ (không phải Procedure!)

黃金法則: 總是檢查標準概念的domain_id。即使原始程式碼是CPT4(過程程式碼),如果Standard Concept的domain=Measurement,則必須將其保存在MEASUREMENT中。


3. 程序、測量、藥物 — 邊界

原始資料在哪裡?原因
闌尾炎手術程序域=過程
腹部超音波程序領域 = 程序(成像)
血液檢查(結果 5.8 mmol/L)測量有測量值→測量
心肺X光檢查(無結果)程式成像→程式
胰島素注射藥物暴露藥品管理
大腸鏡檢查+切片程序程序介入
物理治療 30 分鐘程序程序域
輸血程序輸血=程序

4.modifier_concept_id — 附加訊息

概念 ID修改器意義
41485254148525左左
41496254149625對對
42364364236436雙邊雙方
42155614215561初次邂逅第一次
42155624215562隨後的相遇複試
-- Phẫu thuật cắt ruột thừa nội soi (bên phải)
INSERT INTO procedure_occurrence (
    procedure_occurrence_id, person_id, procedure_concept_id,
    procedure_date, procedure_end_date,
    procedure_type_concept_id,
    modifier_concept_id, quantity,
    provider_id, visit_occurrence_id,
    procedure_source_value
) VALUES (
    90001, 100001, 44783086,          -- SNOMED: Lapar appendectomy
    '2024-06-15', '2024-06-15',
    32817,                             -- EHR
    4149625, 1,                        -- Right side, 1 time
    5001, 50001,
    '0DTJ4ZZ'                          -- ICD-10-PCS
);

5. ETL VN 數據

5.1。熱門資料來源

來源描述原始詞彙
醫院技術服務一覽BV技術服務內部代碼
ICD-9-CM 程序舊手術代碼ICD9 程序
社會保險一覽社會保險服務代碼內部保險代碼

5.2。 SQL ETL

SELECT
    ROW_NUMBER() OVER() AS procedure_occurrence_id,
    pm.person_id,
    COALESCE(cr.concept_id_2, 0) AS procedure_concept_id,
    tt.ngay_thuchien AS procedure_date,
    tt.ngay_ketthuc AS procedure_end_date,
    32817 AS procedure_type_concept_id,
    0 AS modifier_concept_id,
    tt.so_lan AS quantity,
    tt.ma_dvkt AS procedure_source_value,
    COALESCE(c_source.concept_id, 0) AS procedure_source_concept_id
FROM thuthuat_his tt
JOIN person_mapping pm ON tt.ma_bn = pm.source_id
LEFT JOIN source_to_concept_map stcm
    ON tt.ma_dvkt = stcm.source_code
    AND stcm.source_vocabulary_id = 'VN_PROCEDURE'
LEFT JOIN concept c_std
    ON stcm.target_concept_id = c_std.concept_id
    AND c_std.standard_concept = 'S'
    AND c_std.domain_id = 'Procedure'   -- ← Chỉ Procedure domain!
LEFT JOIN concept c_source
    ON tt.ma_dvkt = c_source.concept_code
LEFT JOIN concept_relationship cr
    ON c_source.concept_id = cr.concept_id_1
    AND cr.relationship_id = 'Maps to';

5.3。處理域路由

-- DVKT "Xét nghiệm HbA1c" → mã CPT 83036
-- Standard concept domain = Measurement → KHÔNG lưu vào PROCEDURE

-- Bước 1: Tìm Standard Concept
SELECT c.*
FROM concept c
JOIN concept_relationship cr ON c.concept_id = cr.concept_id_2
    AND cr.relationship_id = 'Maps to'
JOIN concept c_src ON cr.concept_id_1 = c_src.concept_id
WHERE c_src.concept_code = '83036'
  AND c_src.vocabulary_id = 'CPT4';
-- domain_id = 'Measurement' → route sang MEASUREMENT table

-- Bước 2: Lưu vào đúng bảng
-- Nếu domain = 'Procedure' → procedure_occurrence
-- Nếu domain = 'Measurement' → measurement
-- Nếu domain = 'Observation' → observation
-- Nếu domain = 'Drug' → drug_exposure

6.SQL分析

-- Top 10 thủ thuật phổ biến
SELECT
    c.concept_name AS procedure_name,
    COUNT(*) AS procedure_count,
    COUNT(DISTINCT po.person_id) AS patient_count
FROM procedure_occurrence po
JOIN concept c ON po.procedure_concept_id = c.concept_id
WHERE po.procedure_concept_id != 0
GROUP BY c.concept_name
ORDER BY procedure_count DESC
LIMIT 10;

-- Thống kê phẫu thuật theo tháng
SELECT
    DATE_TRUNC('month', po.procedure_date) AS month,
    c.concept_name AS procedure_name,
    COUNT(*) AS total
FROM procedure_occurrence po
JOIN concept c ON po.procedure_concept_id = c.concept_id
WHERE po.procedure_concept_id = 44783086  -- Appendectomy
GROUP BY month, c.concept_name
ORDER BY month;

-- BN có cả chẩn đoán + phẫu thuật liên quan
SELECT
    po.person_id,
    co_cond.concept_name AS diagnosis,
    co_proc.concept_name AS procedure_name,
    co.condition_start_date,
    po.procedure_date
FROM procedure_occurrence po
JOIN condition_occurrence co ON po.person_id = co.person_id
    AND po.visit_occurrence_id = co.visit_occurrence_id
JOIN concept co_cond ON co.condition_concept_id = co_cond.concept_id
JOIN concept co_proc ON po.procedure_concept_id = co_proc.concept_id
WHERE co.condition_concept_id = 441604    -- Appendicitis
  AND po.procedure_concept_id = 44783086  -- Appendectomy
LIMIT 20;

總結

  1. PROCEDURE_OCCURRENCE = 程序、手術、介入、影像
  2. 主要標準詞彙:SNOMED CT
  3. 網域路由極為重要:CPT4程式碼可以對應到Measurement,而不是Procedure
  4. CDM 5.4 增加了延長手術的 procedure_end_date
  5. modifier_concept_id 用於左/右,初始/重訪
  6. ETL VN:內部記帳服務代碼 → SOURCE_TO_CONCEPT_MAP → 標準 SNOMED

下一篇文章: 測量 — 測試、測量和數值。


參考文獻