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

レッスン 11: 観察 — 一般的な臨床事象

OBSERVATION テーブルには、状態、薬剤、手順、または測定の一部ではない臨床事象が記録されます。病歴、ライフスタイル、アレルギー、家族歴、新しい観察イベント ID CDM 5.4。

🏗️ アーキテクチャ — レッスン 11 観察 臨床事象の概要 初心者向け OMOP CDM 5.4 — A to Z を理解する パート 4: 拡張された臨床テーブル xdev.asia

はじめに

OBSERVATION は「包括的な」テーブルです。状態、薬剤、手順、または測定に一致しない臨床イベントを保存する場所です。病歴、ライフスタイル(喫煙、飲酒)、アレルギー、家族歴、婚姻状況、すべてがここにあります。


1. テーブル構造

コラムタイプ必須説明
observation_id整数✅PK固有の ID
person_id整数✅FK患者
observation_concept_id整数✅スタンダードコンセプト
observation_date日付✅記録日
observation_datetime日時日付と時刻
observation_type_concept_id整数✅データソース
value_as_numberフロート数値
value_as_stringVARCHAR(60)テキスト値
value_as_concept_id整数カテゴリ値
qualifier_concept_id整数追加のコンテキスト
unit_concept_id整数単位
provider_id整数FKプロバイダーの記録
visit_occurrence_id整数FK関連する訪問
visit_detail_id整数FK訪問詳細
observation_source_valueVARCHAR(50)元のコード
observation_source_concept_id整数オリジナルコンセプト
unit_source_valueVARCHAR(50)オリジナルユニット
qualifier_source_valueVARCHAR(50)元の修飾子
value_as_datetime日時⭐ CDM 5.4
observation_event_idビッグINT⭐ CDM 5.4
obs_event_field_concept_id整数⭐ CDM 5.4

2. OBSERVATION では何を保存しますか?

###2.1.ユースケースのリスト

使用例観察_概念_id値例
喫煙4275495 (喫煙)コンセプトとしての値4298794 (現在喫煙者)
アレルギー439224 (アレルギー)コンセプトとしての値医薬品/食品のコンセプト
家族の歴史4167217 (家族歴)コンセプトとしての値病気の概念
婚姻状況4053609 (婚姻状況)コンセプトとしての値4338692 (既婚)
血液型4041671 (血液型)コンセプトとしての値36308332 (O型)
病歴4214956 (歴史) + 条件コンセプトコンセプトとしての値
妊娠4299535 (妊娠)コンセプトとしての値
職業4019962 (職業)値としての文字列「先生」

###2.2.観察と状態 — いつどこに保存するか?

データ表説明
「2 型糖尿病患者」状態活動性疾患
「糖尿病の家族歴」観察家族の歴史
「患者はB型肝炎を患っていました(回復しました)」観察
「ペニシリンアレルギー」観察アレルギー
「患者は20年間喫煙しています」観察ライフスタイル
「発熱38.5℃」測定測定値あり

3. 詳細な例

###3.1.喫煙

INSERT INTO observation (
    observation_id, person_id, observation_concept_id,
    observation_date, observation_type_concept_id,
    value_as_concept_id,
    observation_source_value
) VALUES (
    130001, 100001,
    4275495,                     -- Tobacco smoking behavior
    '2024-06-15', 32817,
    4298794,                     -- Current every day smoker
    'SMOKING_STATUS'
);

###3.2.薬物アレルギー

-- Dị ứng Penicillin
INSERT INTO observation (
    observation_id, person_id, observation_concept_id,
    observation_date, observation_type_concept_id,
    value_as_concept_id,
    qualifier_concept_id,
    observation_source_value
) VALUES (
    130002, 100001,
    439224,                      -- Allergy to substance
    '2024-06-15', 32817,
    1713332,                     -- Penicillin (RxNorm ingredient)
    4129512,                     -- Severe (qualifier)
    'ALLERGY_PENICILLIN'
);

###3.3.家族歴

-- Mẹ bị ung thư vú
INSERT INTO observation (
    observation_id, person_id, observation_concept_id,
    observation_date, observation_type_concept_id,
    value_as_concept_id,
    qualifier_concept_id,
    observation_source_value
) VALUES (
    130003, 100001,
    4167217,                     -- Family history of clinical finding
    '2024-06-15', 32817,
    4112853,                     -- Malignant neoplasm of breast
    4166847,                     -- Mother (qualifier)
    'FHX_BREAST_CANCER_MOTHER'
);

4. 観測イベントID — CDM 5.4

Measurement_event_id と同様に、観測値を他のイベントにリンクできるようにします。

-- Ghi nhận: "Lý do nhập viện: Đau ngực"
-- Liên kết với visit_occurrence_id = 50001
INSERT INTO observation (
    observation_id, person_id, observation_concept_id,
    observation_date, observation_type_concept_id,
    value_as_concept_id,
    observation_event_id,
    obs_event_field_concept_id
) VALUES (
    130004, 100001,
    4148832,                     -- Chief complaint
    '2024-06-15', 32817,
    77670,                       -- Chest pain
    50001,                       -- visit_occurrence_id
    1147082                      -- Field = visit_occurrence.visit_occurrence_id
);

5. qualifier_concept_id — コンテキストを追加します

コンセプトID修飾子用途
4129512深刻な重大度レベル
4148136マイルド軽度レベル
4129511中程度中程度のレベル
4166847母家族関係
4166848父家族関係
4192403兄弟兄弟/姉妹
4167233一親等親族一親等親族

6. VNデータETL

-- Tiền sử từ HIS
SELECT
    ROW_NUMBER() OVER() AS observation_id,
    pm.person_id,
    COALESCE(stcm.target_concept_id, 0) AS observation_concept_id,
    ts.ngay_ghinhan AS observation_date,
    32817 AS observation_type_concept_id,
    -- Map giá trị
    CASE ts.loai_tiensu
        WHEN 'HUT_THUOC' THEN
            CASE ts.gia_tri
                WHEN 'CO' THEN 4298794     -- Current smoker
                WHEN 'DA_BO' THEN 4144272  -- Former smoker
                WHEN 'KHONG' THEN 4144273  -- Never smoker
            END
        WHEN 'DI_UNG' THEN
            COALESCE(stcm_drug.target_concept_id, 0)
    END AS value_as_concept_id,
    ts.mo_ta AS value_as_string,
    ts.ma_tiensu AS observation_source_value
FROM tiensu_his ts
JOIN person_mapping pm ON ts.ma_bn = pm.source_id
LEFT JOIN source_to_concept_map stcm
    ON ts.loai_tiensu = stcm.source_code
    AND stcm.source_vocabulary_id = 'VN_OBS_TYPE'
LEFT JOIN source_to_concept_map stcm_drug
    ON ts.gia_tri = stcm_drug.source_code
    AND stcm_drug.source_vocabulary_id = 'VN_DRUG';

7. SQL分析

-- Tỉ lệ hút thuốc theo giới tính
SELECT
    g.concept_name AS gender,
    s.concept_name AS smoking_status,
    COUNT(DISTINCT o.person_id) AS patients
FROM observation o
JOIN person p ON o.person_id = p.person_id
JOIN concept g ON p.gender_concept_id = g.concept_id
JOIN concept s ON o.value_as_concept_id = s.concept_id
WHERE o.observation_concept_id = 4275495  -- Tobacco smoking
GROUP BY g.concept_name, s.concept_name
ORDER BY g.concept_name, patients DESC;

-- Top dị ứng thuốc
SELECT
    c.concept_name AS allergen,
    COUNT(DISTINCT o.person_id) AS patients
FROM observation o
JOIN concept c ON o.value_as_concept_id = c.concept_id
WHERE o.observation_concept_id = 439224  -- Allergy
GROUP BY c.concept_name
ORDER BY patients DESC
LIMIT 10;

概要

  1. OBSERVATION = 特殊なテーブルの一部ではないデータの「キャッチオール」テーブル
  2. 主な使用例: 喫煙、アレルギー、家族歴、ライフスタイル、結婚
  3. qualifier_concept_id はコンテキスト (レベル、関係) を追加します
  4. CDM 5.4: 別のイベントに関連付けられた observation_event_id
  5. ドメインルーティングは、観察、状態、測定を決定します

次の記事: DEVICE_EXPOSURE、検体、およびメモ — 医療機器、検体、および臨床メモ。


参考文献