clinical-data-standards について
clinical-data-standards は、臨床用語とコーディング判断に関する知識スキルです。エージェントが階層レベルを選び、MedDRA、ICD-10、SNOMED CT、LOINC 間の対応付けを行い、よくある誤りを避けるために役立ちます。
主な機能
- 01MedDRA のコーディング階層の解説
- 02ICD-10 の分類粒度の選択
- 03SNOMED CT 概念の参照
- 04LOINC コードとパネルの選択
- 05用語体系間のマッピング支援
活用シーン
- 01有害事象テキストの MedDRA コーディング
- 02有病率分析向けの診断分類
- 03検査所見に対するコード選択
- 04臨床用語体系間の用語マッピング
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ awslabs/ hcls-agent-skills --skill clinical-data-standardsインストール後、Claude Code で/clinical-data-standardsを入力して読み込まれたか確認します。
詳細
臨床データ用語標準
概要
このスキルでは、MedDRA、ICD-10、SNOMED CT、LOINC などの臨床用語体系と、臨床データのコーディング、グループ化、マッピングに関わる判断について、エージェントが推論する方法を説明します。パイプラインコードを生成するものではなく、分析を始める前に正しいコーディングと集計を選択するために必要なドメイン知識を提供します。
用語体系を誤って扱うと、直接的な影響が生じます。副作用を誤ってコーディングすると安全性シグナルが見逃され、ICD-10 の粒度を誤ると有病率の推定値が過大または過小になり、LOINC の割り当てを誤ると検査結果の相互運用性が損なわれます。このスキルでは、こうしたエラーを防ぐためのルール、階層、判断フレームワークを示します。
使用方法
ユーザーが次のような場合に、このスキルを呼び出します。
- 逐語的な副作用テキストを MedDRA 用語にコーディングする必要がある。
- 頻度表やシグナル検出にどのレベルの MedDRA を使用すべきか尋ねている。
- 診断を ICD-10 コードでグループ化したいが、3 文字と 4 文字のどちらの粒度を選ぶべきか判断する必要がある。
- 臨床所見や処置に関する SNOMED CT の概念間の関係を理解する必要がある。
- 検査項目に LOINC コードを選択する必要がある、またはパネルの構成を理解したい。
- 用語体系間のマッピング(MedDRA ↔ ICD-10、SNOMED CT → ICD-10)を行っている。
- 臨床試験における AE コーディングの規制上の期待事項について尋ねている。
エージェントは、次の手順で回答します。
- 用語体系を特定する — データの種類とユースケースに適したものを選びます。
- 粒度を明確にする — どの階層レベルでコーディングし、どのレベルで報告するかを決めます。
- マッピングルールを適用する — ソースシステムとターゲットシステムに固有のルールを適用します。
- よくある落とし穴を指摘する — 過剰コーディング、コーディング不足、不適切な集計を確認します。
- 関連する場合は規制上の背景を示す(ICH E2B、FDA、EMA の期待事項)。
回答形式
- 直接的な推奨または分類を冒頭に示します(3 文以内)。
- 次の順序で構成します:推奨 → 根拠(具体的な基準や閾値を引用)→ 注意事項
- 比較には表を、基準の一覧には箇条書きを使用します。
- ユーザーがすでに知っている背景説明は省略します。ユーザーが尋ねている内容に答えてください。
- 目安は 200〜400 語です。ただし、ユーザーが網羅的な説明を求める場合は除きます。 このスキルに含まれる判断ツリーとフレームワークは、内部推論専用です。結論に至るために適用しますが、回答にそのまま再掲しないでください。根拠を添えた最終的な推奨のみを提示します。
基本概念
1. MedDRA:5 段階の階層
MedDRA(規制活動用医学辞書)は、臨床試験やファーマコビジランスにおける副作用、病歴、適応症のコーディング標準です。
| レベル | 略語 | 件数(約 v26) | 用途 |
|---|---|---|---|
| 器官別大分類 | SOC | ~27 | 最も広い分類(例:「心臓障害」) |
| 高位グループ用語 | HLGT | ~337 | 1 つの SOC 内で関連する HLT をグループ化 |
| 高位用語 | HLT | ~1,740 | 解剖学的部位や機序に基づいて関連する PT をグループ化 |
| 基本語 | PT | ~24,000 | 標準的な報告用語。中心となる用語 |
| 下層語 | LLT | ~83,000 | 1 つの PT に対応する逐語レベルの同義語 |
コーディングの流れ
Verbatim AE text (from CRF)
│
▼
LLT (closest match to verbatim)
│
▼
PT (standard reportable term — one LLT maps to exactly one PT)
│
▼
HLT → HLGT → SOC (for grouping and display)
ルール:
- 必ず最初に LLT にコーディングし、その後、階層に従って PT を導出します。逐語テキストから直接 PT に進んではいけません。LLT 層で同義語や綴りのバリエーションを扱います。
- PT は主要な分析レベルです。 臨床試験報告書(CSR)の頻度表では、AE を SOC ごとにグループ化して PT レベルで記載します。
- 1 つの LLT は、必ず 1 つの PT に対応します。 ただし、1 つの PT が複数の SOC に属する場合があります(既定のグループ化では、主 SOC の割り当てに従います)。
- 主 SOC の割り当ては ICH の規約に従います。病因 SOC は、症状 SOC より優先されます。「薬剤性肝炎」は「肝胆道系障害」(症状)に分類されますが、その主 SOC は MedDRA の主経路ルールによって決まります。
- 多軸性: PT は複数の SOC に現れる場合があります。プロトコルで指定されていない限り、頻度表には常に主 SOCを使用します。
PT より上位で集約する場合
| シナリオ | 推奨レベル | 理由 |
|---|---|---|
| 標準的な AE 頻度表(CSR) | SOC 内の PT | 規制上の期待事項です(ICH E3) |
| まれな事象を横断したシグナル検出 | HLT または HLGT | 個々の PT では件数が少なすぎるため、グループ化によってパターンが明らかになります |
| MedDRA 標準検索式(SMQ) | SMQ(事前定義済み) | 既知の安全性トピック(「肝障害」など)に対応する、精選された用語グループです |
| 高レベルの安全性概要 | SOC | 詳細な分析ではなく、エグゼクティブサマリー向けです |
決定木:MedDRA のコーディングレベル
Start
│
├── Is this a standard CSR AE table?
│ └── Code at LLT → report at PT within primary SOC.
│
├── Are you looking for a safety signal across related terms?
│ ├── Does an SMQ exist for the topic?
│ │ └── Yes → Use the SMQ (narrow or broad scope as appropriate).
│ └── No SMQ → Aggregate at HLT. Document the grouping rationale.
│
├── Are individual PTs too rare to detect a signal?
│ └── Consider HLT or HLGT grouping, but report both grouped
│ and individual PT counts for transparency.
│
└── Executive safety summary only?
└── SOC-level counts are acceptable, with PT detail available on request.
2. ICD-10:コード構造とグループ化
ICD-10(国際疾病分類、第10版)は、レセプト、EHR、疫学研究における診断コーディングの標準です。
構造
Chapter (I–XXII)
└── Block (e.g., E10–E14: Diabetes mellitus)
└── Category — 3 characters (e.g., E11: Type 2 diabetes)
└── Subcategory — 4–7 characters (e.g., E11.6: With complications)
└── Extension (e.g., E11.65: With hyperglycemia)
| レベル | 例 | 粒度 |
|---|---|---|
| 章 | 第IV章:内分泌疾患 | ほとんどの分析には広すぎます |
| ブロック | E10–E14 | 疾患群のグループ化 |
| 3文字カテゴリー | E11 | 疾患実体(2型DM) |
| 4文字サブカテゴリー | E11.6 | 合併症の種類 |
| 完全なコード | E11.65 | 特定の症状 |
グループ化の判断
粒度の選択は分析の目的によって異なります。
| 分析の種類 | 推奨レベル | 例 |
|---|---|---|
| 集団有病率研究 | 3文字カテゴリー | E11(すべての2型DM) |
| 併存疾患指数(Charlson、Elixhauser) | 3文字カテゴリーまたはブロック | 各疾患に対応する事前定義済みコードリスト |
| 特定のアウトカム研究 | 完全なコード(4~7文字) | E11.65(特に高血糖) |
| レセプトに基づくコホート定義 | 3文字カテゴリー+除外 | E11.0(昏睡を伴うもの)を除く E11.* |
| 国をまたいだ比較 | ブロックレベル | ICD-10 のブロックは、各国の改変版間でより安定しています |
決定木:ICD-10 のグループ化レベル
Start
│
├── Are you estimating disease prevalence or incidence?
│ └── 3-character category. Captures all subtypes.
│ Add block-level grouping if comparing across disease families.
│
├── Are you defining a specific clinical outcome?
│ └── Full code (4+ characters). Be explicit about which
│ manifestations qualify. Document inclusion/exclusion codes.
│
├── Are you building a comorbidity score?
│ └── Use the published code lists (Charlson/Elixhauser).
│ Do not invent your own groupings.
│
├── Are you comparing across countries or ICD-10 modifications?
│ └── Block level. National modifications (ICD-10-CM, ICD-10-GM)
│ diverge at the subcategory level.
│
└── Are you mapping from another system (MedDRA, SNOMED CT)?
└── Map to 3-character first, then refine to subcategory
only if the source system provides sufficient specificity.
ICD-10-CM と ICD-10-WHO
- ICD-10-CM(米国臨床修正版):コードを7文字まで拡張し、左右の別、受診種別(初回/その後/後遺症)を追加します。米国のレセプトと EHR で使用されます。
- ICD-10-WHO:国際的な基本版です。コードはより短く、左右の別の拡張はありません。
- 使用する修正版を必ず明記してください。 ICD-10-CM では有効なコードが、ICD-10-WHO には存在しない場合があります。
3. SNOMED CT:概念モデル
SNOMED CT(医学の体系的命名法 — 臨床用語)は、臨床所見、処置、物質、身体構造、生物を扱う、最も包括的な臨床用語体系です。
基本構造
- 概念:臨床的な意味を表す一意の識別子(SCTID)です。
- 記述:人が読める用語(完全指定名、優先用語、同義語)です。
- 関係:概念間の型付きリンクです。
主な関係の種類
| 関係 | 意味 | 例 |
|---|---|---|
| IS-A | 包含階層 | 「急性心筋梗塞」は「心筋梗塞」の IS-A です |
| 所見部位 | 所見が存在する部位 | 「肺炎」→ 所見部位 →「肺構造」 |
| 原因物質 | 状態の原因 | 「アスピリン誘発喘息」→ 原因物質 →「アスピリン」 |
| 関連形態 | 構造上の変化 | 「肺腺癌」→ 形態 →「腺癌」 |
| 方法 | 処置の実施方法 | 「腹腔鏡下胆嚢摘出術」→ 方法 →「腹腔鏡アプローチ」 |
SNOMED CT と他の体系の使い分け
| 用途 | 推奨体系 | 理由 |
|---|---|---|
| EHR での臨床記録 | SNOMED CT | 豊富な概念モデルで、臨床上の詳細を扱えます |
| 請求とレセプト | ICD-10 | 支払者によって必須とされています |
| 有害事象の報告 | MedDRA | 規制上の要件です |
| 臨床検査の依頼/結果 | LOINC | 検査情報の相互運用性に関する標準です |
| 医薬品のコーディング | RxNorm(米国)/SNOMED CT | 処方には RxNorm、物質には SNOMED CT を使用します |
SNOMED CT の階層ナビゲーション規則
- 包含関係のクエリには IS-A 階層を使用します。 「糖尿病のすべての種類」を検索するには、概念 73211009(糖尿病)の子孫をクエリします。
- ポストコーディネーション(概念の組み合わせ)は強力ですが、複雑です。既成概念がある場合は、事前調整された概念を優先してください。
- 参照セット(refset)は、特定の用途(例:各国の医薬品拡張)向けのサブセットを定義します。必ず、該当する地域でどの refset が適用されるか確認してください。
- SNOMED CT → ICD-10 のマッピングは SNOMED International によって管理されています。公式マップを使用し、独自の対応表を作成しないでください。
4. LOINC:臨床検査コード
LOINC(Logical Observation Identifiers Names and Codes)は、臨床検査と臨床所見を識別するための標準です。
6 要素の命名規則
すべての LOINC コードは、次の 6 つの軸で定義されます。
| 軸 | 説明 | 例(空腹時血糖、血清) |
|---|---|---|
| Component | 測定対象 | Glucose |
| Property | 測定の種類 | MCnc(質量濃度) |
| Timing | 時点か期間か | Pt(時点) |
| System | 検体の種類 | Ser/Plas(血清または血漿) |
| Scale | 定量、順序尺度など | Qn(定量) |
| Method | 測定方法(任意) | — |
パネル
LOINC パネルは、まとめてオーダーされる関連検査をグループ化します。
| パネル | LOINC コード | 含まれる項目 |
|---|---|---|
| 白血球分画付き血算 | 57021-8 | WBC、RBC、Hgb、Hct、MCV、MCH、MCHC、Plt、白血球分画 |
| 基本代謝パネル | 51990-0 | Glucose、BUN、Creatinine、Na、K、Cl、CO2、Ca |
| 総合代謝パネル | 24323-8 | BMP + albumin、bilirubin、ALP、ALT、AST、total protein |
| 脂質パネル | 24331-1 | 総コレステロール、HDL、LDL(計算値)、トリグリセリド |
| 肝機能パネル | 24325-3 | Albumin、bilirubin(総量/直接)、ALP、ALT、AST、total protein |
LOINC 選択規則
- 6 つすべての軸を一致させます。 血清の血糖検査(定量、質量濃度)は、尿の血糖検査(定量、質量濃度)や血清の血糖検査(順序尺度)とは異なる LOINC コードです。
- 測定方法が解釈に大きく影響する場合(例:LDL の計算値と直接測定値)を除き、Method 軸のないコードを優先します。
- パネル全体がオーダーされた場合はパネルコードを使用し、その中の各構成項目の結果には個別のコードを使用します。
- LOINC のステータスを確認します。 コードのステータスは ACTIVE、DEPRECATED、DISCOURAGED のいずれかです。ACTIVE コードのみを使用してください。
- LOINC の回答コード(LA コード)は、順序尺度の所見に対して標準化された回答リスト(例:陽性/陰性/判定不能)を提供します。
5. システム間のマッピング判断
用語体系間のマッピングは必要ですが、誤りが発生しやすい作業です。次の規則に従ってください。
MedDRA → ICD-10
| シナリオ | 方法 |
|---|---|
| AE 用語から診断コードへのマッピング | PT → ICD-10 の 3 文字カテゴリにマッピングします。PT が十分な具体性を示す場合に限り、サブカテゴリに細分化します。 |
| 既往歴のコーディング | PT レベルでマッピングし、原文が裏付ける場合は ICD-10 のサブカテゴリを使用します。 |
| 併存疾患 | 利用可能な場合は、公式の MedDRA-to-ICD クロスウォークを使用します。 |
規則:
- 1 つの MedDRA PT が複数の ICD-10 コードにマッピングされる場合があります(その逆も同様です)。マッピング表とバージョンを記録してください。
- LLT を ICD-10 に直接マッピングしないでください。 LLT は同義語であり、独立した概念ではないため、必ず最初に PT を介してください。
- 粒度の不一致は想定されるものです。 MedDRA PT は、ICD-10 のサブカテゴリよりも広い意味を持つことがよくあります。具体性の損失を許容するか、追加の臨床的コンテキストを求めてください。
SNOMED CT → ICD-10
- SNOMED International が管理するマップ(各 SNOMED CT エディションとともにリリース)を使用します。
- マップには、マッピング規則と優先順位を伴う ICD-10 のターゲットコードが記載されています。
- 1 つの SNOMED CT 概念が複数の ICD-10 コードにマッピングされる場合があります(組み合わせコーディング)。マッピング規則に従って、正しいターゲットコードを選択してください。
- 専用の逆方向クロスウォークがない限り、マップを逆方向に適用しないでください(ICD-10 → SNOMED CT)。順方向のマップは多対一であり、逆に適用すると情報が失われます。
LOINC → ローカル検査コード
- ほとんどの医療機関では、ローカルコードから LOINC へのマッピングテーブル(「LOINC マッピング」または「結果コードのクロスウォーク」と呼ばれることが多い)を管理しています。
- ローカルの検査定義と照らし合わせ、LOINC の 6 つの軸すべてを確認してマッピングを検証してください。 よくある誤りは、構成要素名が一致するという理由で、血清検査を尿検査の LOINC コードにマッピングすることです。
- パネルと構成要素: パネルのオーダーにはパネルの LOINC コードを、個々の結果行にはそれぞれの構成要素の LOINC コードをマッピングしてください。
判断フロー:どのマッピング方法を選ぶべきか?
Start
│
├── Source is verbatim AE text?
│ └── Code to MedDRA (LLT → PT). Map to ICD-10 only if
│ the downstream system requires it.
│
├── Source is EHR diagnosis (free text or local code)?
│ ├── US system → Map to ICD-10-CM (billing) and SNOMED CT (clinical).
│ └── Non-US → Map to ICD-10-WHO or national modification.
│
├── Source is lab result?
│ └── Map to LOINC. Match all six axes. Use panel codes for orders.
│
├── Need to cross-walk between MedDRA and SNOMED CT?
│ └── Go through ICD-10 as an intermediary (MedDRA → ICD-10 → SNOMED CT)
│ or use UMLS concept mappings. Direct MedDRA ↔ SNOMED CT maps
│ are not officially maintained.
│
└── Building a research dataset combining claims + EHR + trial data?
└── Define a canonical code system for each data element.
Map all sources to the canonical. Document every mapping
decision and version. Accept that some mappings are lossy.
6. 規制上のコンテキスト
| 標準 | 必須システム | コンテキスト |
|---|---|---|
| ICH E2B(R3) | MedDRA | 個別症例安全性報告(ICSR) |
| ICH E3 | MedDRA | 臨床試験報告書 — SOC 内の PT ごとの AE テーブル |
| US claims (CMS) | ICD-10-CM, CPT, HCPCS | 請求および償還 |
| US EHR (ONC) | SNOMED CT, LOINC, RxNorm | Meaningful Use / Promoting Interoperability |
| CDISC SDTM | MedDRA(AE ドメイン)、ドメインごとの辞書 | FDA への臨床試験データの提出 |
| OMOP CDM | SNOMED CT(病態)、LOINC(測定値)、RxNorm(薬剤) | 観察研究 |
このスキルを使用しない場合
- 規制上の安全性報告に MedDRA コードを割り当てる場合(訓練を受けた医療コーダーが必要です)
- コーディングに因果関係評価についての臨床的判断が必要な場合
- 法的責任が伴う請求または償還のために ICD-10 コーディングを行う場合
人間の専門家にエスカレーションする場合
- 用語が SOC の異なる複数の PT 候補に対応する場合
- 規制当局への申請の受理に影響するクロスウォークの判断を行う場合
- ローカルのコーディング規約が国際標準に優先する場合
よくある間違い
-
誤り: LLT 層を飛ばして、有害事象を直接 PT にコーディングする 正しい方法: まず逐語テキストを必ず LLT にコーディングし、その後、階層構造によって PT を導出します 理由: LLT 層では同義語や綴りのバリエーションを扱います。この層を飛ばすと、異なる逐語テキストが同じ概念を表している場合に、コーディングの一貫性が損なわれるおそれがあります
-
誤り: AE の頻度表に副 SOC を使用する 正しい方法: プロトコルで明示的に指定されていない限り、頻度表には必ずプライマリ SOC を使用します 理由: 複数の軸を持つ PT は複数の SOC に現れます。プライマリとセカンダリを混在させると、見かけ上の AE 件数が水増しされ、シグナル検出が混乱します
-
誤り: 根拠を記録せずに HLT レベルで集計する 正しい方法: 個々の用語がシグナル検出には少なすぎる場合に限り、PT より上位のレベルで集計します。グループ化した PT の件数とグループ化していない PT の件数を必ず両方示します 理由: HLT でのグループ化により、個別の安全性上の懸念を示す可能性がある個々の PT のシグナルが隠れてしまいます
-
誤り: 米国以外のデータに ICD-10-CM コードを適用する 正しい方法: 使用する ICD-10 の修正版を明記します。米国以外のデータには ICD-10-WHO、または適切な各国の修正版を使用します 理由: ICD-10-CM の拡張コード(左右の区別、受診の種類)は ICD-10-WHO には存在しません。コードが無効になったり、誤って解釈されたりする可能性があります
-
誤り: 特定の転帰を対象とする研究で、ICD-10 を3文字レベルでグループ化する 正しい方法: 転帰が特定の症状である場合は完全なコード(4文字以上)を使用し、含めるコードと除外するコードを明示的に記録します 理由: E11 にはすべての2型糖尿病の合併症が含まれます。転帰が「高血糖を伴う2型糖尿病」の場合、正しいコードは E11.65 のみです
-
誤り: SNOMED CT → ICD-10 マップを逆にして、ICD-10 → SNOMED CT のクロスウォークを作成する 正しい方法: 専用の逆方向クロスウォーク、または UMLS CUI ベースのマッピングを使用します。順方向マップを逆にして使用しないでください 理由: 順方向マップは多対一です。これを逆にすると、マップのルールなしでは解決できない曖昧な一対多のマッピングが生じます
-
誤り: LOINC コードをコンポーネント名だけで照合する 正しい方法: LOINC の6つの軸(コンポーネント、特性、タイミング、システム、尺度、方法)がすべて、施設内の検査定義と一致することを確認します 理由: 2つの LOINC コードでコンポーネントが同じでも、システム(血清と尿など)、特性、または尺度が異なる場合があります。一部だけで照合すると、誤った割り当てにつながります
-
誤り: ステータスを確認せずに、非推奨の LOINC コードを使用する 正しい方法: LOINC の STATUS フィールドを必ず確認し、非推奨のコードを後継の有効なコードに置き換えます 理由: 非推奨コードは相互運用性を損ない、受信側のシステムで認識されない場合があります
-
誤り: 公式マップを使わずに、その場しのぎの用語クロスウォークを作成する 正しい方法: SNOMED International、NLM、または MSSO が整備したマップを使用し、使用したマップのバージョンを記録します 理由: その場しのぎのマッピングは不整合を招き、再現性がなく、規制当局の期待とも異なるものになります
-
誤り: 複数の研究のデータを統合する際に、MedDRA のバージョンの違いを無視する 正しい方法: 研究ごとに使用した MedDRA のバージョンを記録し、バージョン間で追加、統合、または非推奨となった用語を調整します 理由: PT はバージョン間で追加、統合、または非推奨となります。v25 では有効な用語が v26 では非推奨となり、データの欠落や誤集計につながる場合があります
-
誤り: 結果を保存する際に、LOINC のパネルコードとコンポーネントコードを混同する 正しい方法: オーダーにはパネルコードを使用し、パネル内の各結果には個別のコンポーネント LOINC コードを使用します 理由: CBC パネルコードの下に血糖値の結果を保存するのは意味的に誤りであり、下流での集計や相互運用性を損ないます
-
誤り: 中間コード体系を介さずに MedDRA を SNOMED CT に直接マッピングする 正しい方法: 中間コード体系として ICD-10 を使用する(MedDRA → ICD-10 → SNOMED CT)か、UMLS CUI ベースのマッピングを使用し、マッピング経路を記録します 理由: MedDRA ↔ SNOMED CT の公式な直接クロスウォークはありません。直接マッピングでは、検証されておらず再現性のない結果が生じます
参考資料
- MedDRA 入門ガイド:https://www.meddra.org/how-to-use/support-documentation
- ICH E2B(R3) ガイドライン:https://database.ich.org/sites/default/files/E2B_R3__Guideline.pdf
- ICD-10-WHO:https://icd.who.int/browse10/2019/en
- ICD-10-CM:https://www.cms.gov/medicare/coding-billing/icd-10-codes
- SNOMED CT スターターガイド:https://confluence.ihtsdotools.org/display/DOCSTART
- SNOMED CT から ICD-10 へのマップ:https://www.snomed.org/snomed-ct/Use-SNOMED-CT/maps
- LOINC ユーザーガイド:https://loinc.org/kb/users-guide/
- CDISC SDTM 実装ガイド:https://www.cdisc.org/standards/foundational/sdtm
- OMOP CDM 語彙:https://ohdsi.github.io/CommonDataModel/