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

レッスン 14: 概念と語彙 — 標準辞書の基礎

2 つのテーブルは Vocabulary システムの中心です。CONCEPT にはすべての医学概念が含まれ、VOCABULARY は起源を管理します。 standard_concept、domain_id、concept_class_id、vocabulary_id、および Athena の検索方法を学びます。

🏗️ アーキテクチャ — レッスン 14 コンセプトと語彙 標準辞書プラットフォーム 初心者向け OMOP CDM 5.4 — A to Z を理解する パート 5: 標準化された語彙 xdev.asia

語彙エコシステム — コンセプト、語彙、関係、祖先

はじめに

標準化語彙 システムは OMOP CDM の「頭脳」であり、すべての臨床データがここにリンクされています。この記事では、CONCEPT (約 1,000 万の医療概念を含む) と VOCABULARY (70 以上の辞書ソースを管理) という 2 つの中央テーブルに焦点を当てます。これら 2 つのテーブルを理解することが、OMOP をマスターする鍵となります。


1. コンセプトテーブル

###1.1.構造

コラムタイプ説明例
concept_id整数PK — グローバルに一意の ID201826
concept_nameVARCHAR(255)コンセプト名「2型糖尿病」
domain_idVARCHAR(20)ドメイン (どのテーブル)「状態」
vocabulary_idVARCHAR(20)FK → 語彙「SNOMED」
concept_class_idVARCHAR(20)語彙における分類「臨床所見」
standard_conceptVARCHAR(1)S=標準、C=分類、NULL"S"
concept_codeVARCHAR(50)語彙内の元のコード"44054006"
valid_start_date日付有効開始日2002-01-31
valid_end_date日付有効期限2099年12月31日
invalid_reasonVARCHAR(1)NULL=有効、U=更新、D=削除NULL

###1.2. standard_concept — 3 種類のコンセプト

  ┌─────────────────────────────────────────────────────┐
  │ standard_concept = 'S' (Standard)                    │
  │ → Concept "chính thống" dùng trong *_concept_id     │
  │ → VD: SNOMED 201826 "Type 2 diabetes mellitus"      │
  │ → Dùng cho condition_concept_id                      │
  └──────────────────────┬──────────────────────────────┘
                         │ Maps to (nguồn → đích)
  ┌──────────────────────┴──────────────────────────────┐
  │ standard_concept = NULL (Non-standard / Source)      │
  │ → Concept nguồn từ ICD, CPT4, ATC...               │
  │ → VD: ICD10CM 45591837 "E11 - Type 2 DM"           │
  │ → Dùng cho *_source_concept_id                       │
  └─────────────────────────────────────────────────────┘

  ┌─────────────────────────────────────────────────────┐
  │ standard_concept = 'C' (Classification)              │
  │ → Concept dùng cho phân cấp / ancestor              │
  │ → VD: MedDRA PT "Diabetes mellitus"                 │
  └─────────────────────────────────────────────────────┘

###1.3. domain_id — ターゲットテーブルを識別します

ドメインIDCDM テーブル例
条件条件発生病気、症状
薬DRUG_EXPOSURE医学
手順PROCEDURE_OCCURRENCEヒント
測定測定テスト
観察観察謝辞
デバイスデバイス_露出設備
解剖学的部位の仕様標本サンプリング場所
訪問VISIT_OCCURRENCE「訪問
タイプコンセプト*_type_concept_idデータソース
性別人物性別
レース人物レース
単位測定単位単位
ルートDRUG_EXPOSURE.ルート投与経路

2. 語彙表

###2.1.構造

コラムタイプ説明
vocabulary_idVARCHAR(20)PK — ID ボキャブラリー
vocabulary_nameVARCHAR(255)フルネーム
vocabulary_referenceVARCHAR(255)参考URL
vocabulary_versionVARCHAR(255)バージョン
vocabulary_concept_id整数FK → 代表コンセプト

###2.2.人気の語彙

語彙ID名前メインドメイン役割
SNOMEDSNOMED-CT状態、手順、観察臨床使用の標準
RxNormRxNorm薬医療の標準
ロインクロインク測定テストの標準
ICD10CMICD-10-CM条件ソースコンセプト診断
ICD10PCSICD-10-PCS手順ソースコンセプトのヒント
CPT4CPT-4手順・測定ソース請求コード
ATCATC薬医薬品の分類
UCUMユーカム単位測定単位
性別OMOP 性別性別性別
レースレースレースレース
CVXワクチン薬ワクチンコード

3. Athena でコンセプトを調べる

###3.1.ルックアップステップ

  1. Vào athena.ohdsi.org
  2. Gõ từ khóa: "Type 2 diabetes"
  3. Filter:
     - Standard Concept: Standard ✓
     - Domain: Condition ✓
     - Vocabulary: SNOMED ✓
  4. Kết quả:
     concept_id:     201826
     concept_name:   Type 2 diabetes mellitus
     vocabulary_id:  SNOMED
     concept_code:   44054006
     standard_concept: S
     domain_id: Condition

###3.2. SQLルックアップ

-- Tìm Standard Concept cho "tiểu đường type 2"
SELECT concept_id, concept_name, vocabulary_id,
       domain_id, standard_concept, concept_code
FROM concept
WHERE LOWER(concept_name) LIKE '%type 2 diabetes%'
  AND standard_concept = 'S'
  AND domain_id = 'Condition'
ORDER BY concept_name;

-- Tìm Source Concept (ICD-10) mapping đến Standard
SELECT
    c_src.concept_id AS source_concept_id,
    c_src.concept_code AS icd10_code,
    c_src.concept_name AS icd10_name,
    c_std.concept_id AS standard_concept_id,
    c_std.concept_name AS standard_name,
    c_std.vocabulary_id AS standard_vocab
FROM concept c_src
JOIN concept_relationship cr
    ON c_src.concept_id = cr.concept_id_1
    AND cr.relationship_id = 'Maps to'
JOIN concept c_std
    ON cr.concept_id_2 = c_std.concept_id
    AND c_std.standard_concept = 'S'
WHERE c_src.concept_code = 'E11'
  AND c_src.vocabulary_id = 'ICD10CM';

4. Concept_class_id — 語彙における分類

###4.1. SNOMED

コンセプトクラスID意味例
臨床所見病気、症状タイプ 2 DM
手順ヒント虫垂切除術
体の構造体の構造肝臓
物質品質グルコース
観測可能なエンティティ測定数量血圧
修飾子の値付加価値深刻な

###4.2. RxNorm

コンセプトクラスIDレベル例
成分 (IN)有効成分メトホルミン
臨床薬剤フォーム (CDF)HC + 剤形メトホルミン経口錠
臨床薬 (CD)HC + 用量 + フォームメトホルミン 500mg 錠
ブランドドラッグ (BD)商号グルコファージ 500mg 錠
臨床医薬品コンプ (CDC)HC + 投与量メトホルミン500mg
ブランド名 (BN)商号グルコファージ
用量フォーム (DF)剤形経口錠剤

5. ドメインテーブル

コラムタイプ説明
domain_idVARCHAR(20)PK
domain_nameVARCHAR(255)ドメイン名
domain_concept_id整数FK → コンセプト

6. CONCEPT_CLASS テーブル

コラムタイプ説明
concept_class_idVARCHAR(20)PK
concept_class_nameVARCHAR(255)クラス名
concept_class_concept_id整数FK → コンセプト

7. Concept_id = 0 — 特別な意味

コンセプト意味いつ使用するか
コンセプトID = 0「一致するコンセプトがありません」マッピングできません
コンセプト名「一致するコンセプトがありません」
ドメインIDNULL
語彙ID「なし」
-- Kiểm tra % records không map được
SELECT
    'condition_occurrence' AS table_name,
    COUNT(*) AS total_records,
    SUM(CASE WHEN condition_concept_id = 0 THEN 1 ELSE 0 END) AS unmapped,
    ROUND(SUM(CASE WHEN condition_concept_id = 0 THEN 1 ELSE 0 END) * 100.0
          / COUNT(*), 1) AS unmapped_pct
FROM condition_occurrence
UNION ALL
SELECT 'drug_exposure', COUNT(*),
    SUM(CASE WHEN drug_concept_id = 0 THEN 1 ELSE 0 END),
    ROUND(SUM(CASE WHEN drug_concept_id = 0 THEN 1 ELSE 0 END) * 100.0
          / COUNT(*), 1)
FROM drug_exposure
UNION ALL
SELECT 'measurement', COUNT(*),
    SUM(CASE WHEN measurement_concept_id = 0 THEN 1 ELSE 0 END),
    ROUND(SUM(CASE WHEN measurement_concept_id = 0 THEN 1 ELSE 0 END) * 100.0
          / COUNT(*), 1)
FROM measurement;

概要

  1. コンセプト: 最大 1,000 万件のレコード、各医療コンセプトには固有のコンセプト ID があります
  2. standard_concept: S = 標準 (主に使用)、C = 分類、NULL = ソース
  3. domain_id により、データがどの CDM テーブルに保存されるかが決まります
  4. 語彙: 70 以上の辞書ソース (SNOMED、RxNorm、LOINC、ICD-10...)
  5. concept_id = 0: 「マッピングできません」 — ETL が標準コンセプトを見つけられない場合に使用されます
  6. athena.ohdsi.org を検索するか、CONCEPT テーブルを直接クエリします。

次の記事: CONCEPT_RELATIONSHIP と CONCEPT_ANCESTOR — コンセプト間の関係と階層。


参考文献