Claude Code × Medical Application

【データ説明】Medicare Part D — 処方医×薬剤データの構造と制約

日本語 / English

1. このページの位置づけ

連載「Medicare Part D × Text-to-SQL」で使うデータを、記事本編とは切り離して解説する参照ページです。「Medicare って何?」「Part D の D は何?」「CSV に何が入っているの?」に、この1ページで答えられるようにします。

掲載した数値はすべて CY2024 のデータで、2026-09-22 に data.cms.gov から取得して確かめた実測値です。 画面写真も同日のものです。

2. Medicare と Part D

Medicare の4つの給付と Part D の位置

Medicare は米国連邦政府が運営する公的医療保険で、主な対象は 65 歳以上の高齢者と、一部の障害者・末期腎不全の患者です。運営しているのが CMS(Centers for Medicare & Medicaid Services)で、日本でいえば厚生労働省保険局と社会保険診療報酬支払基金を足したような機関です。

給付は A〜D の4つに分かれ、本シリーズが使うのは Part D=薬局で受け取る処方薬です。2006 年に始まった比較的新しい制度で、実際の保険プランは民間保険会社が提供し、CMS が費用を補助して監督します。単独の薬剤プラン(PDP)と、Medicare Advantage に付帯するプラン(MA-PD)の2種類があります。

ここが読み違えやすい点ですが、このデータは「米国の全処方」ではありません。 Part D に加入している人が薬局で受け取った薬だけで、病院の外来や入院で投与された薬(Part B)は含まれません。

3. データの所在

data.cms.gov の Medicare Part D Prescribers - by Provider and Drug のデータセットページ

CMS は 2015 年から、透明性政策の一環として Part D の請求データを 処方医 × 薬剤 × 年 で集計し、処方医の氏名付きで公開しています。2013 年分から毎年追加され、最新は CY2024(2026 年 5 月公開)。ブラウザで中身を見る・API で叩く・CSV を丸ごと落とす、のどれでもできます。

日本の NDB オープンデータと米国 Part D データの粒度の違い

日本の NDB オープンデータが「都道府県 × 薬効分類」の集計表なのに対し、このデータは「医師 × 薬剤」まで降りています。医師は NPI(National Provider Identifier、全国一意の 10 桁 ID)で識別され、氏名・専門科・所在地が付きます。

Data Dictionary のページ。列の定義はここが正本

列名・型・抑制の扱いの正本は、各表の Data Dictionary です。以下の説明もここに準拠しています。

4. CSV の中身

data.cms.gov のデータビューア。CY2024 の主表は 28,023,892 行

主表(by Provider and Drug)の CY2024 は 28,023,892 行。1 行が「ある医師の、ある薬の、1 年分」です。氏名がそのまま入っていることも、この画面で分かります。

CSV の1行を22列に分解したところ

22 列の内訳は、処方医 8・薬剤 2・数字 12。注意点が3つあります。NPI は先頭に 0 が来るので文字列で扱うこと、薬効クラスの列が無いこと(「GLP-1 受容体作動薬」のような切り口には自前の辞書が要る)、そして空欄は 0 ではないことです。3つ目は 6-1 で扱います。

5. 3つの表の使い分け

3つの表を Ozempic / CY2024 で見比べたところ

主表のほかに、医師サマリ(by Provider、84 列)と地域集計(by Geography and Drug)があります。粒度が違うだけでなく、その表にしか無い列があるのが選び方の勘所です。患者の自己負担額は地域表だけ、ジェネリック率やオピオイド処方率・患者集団の属性は医師表だけにあります。

3 つとも CSV で誰でもダウンロードできます(API もあります)。主表は 1 年分で数 GB あるので、Excel で開く類のサイズではありません。

6. 読み方の注意点

6-1. 抑制ルール — 11 件未満は行ごと消える

Ozempic / CY2024 で見た抑制の影響

患者のプライバシーを守るため、件数が 1〜10 の値は空欄になり、請求数 11 件未満の医師 × 薬剤の行そのものが存在しません。Ozempic を例にとると、地域表が数えた処方医 286,517 人に対し、主表に行が残っているのは 171,191 人。差の 115,326 人(40%)は、11 件未満なので行ごと落ちています。

つまり、主表を足し上げても「その薬の全処方」にはなりません。全数が欲しいときは by Geography and Drug を使います。集計するときは、抑制で欠けている行数を一緒に見えるようにしておくのが安全です。

6-2. 請求数・処方量・費用

Tot_Clms と Tot_30day_Fills と Tot_Day_Suply の違い

Tot_Clms(請求数)は 30 日分でも 90 日分でも 1 件です。処方量を比べるなら、各請求の日数を 30 で割って足した Tot_30day_Fills を使います。

費用(Tot_Drug_Cst)は薬剤費+調剤料+税の請求額の合計で、製薬企業からプランへのリベートは反映されていません。ブランド薬ほどリベートが大きいので、実際の負担額より高く見えます。「費用トップ 10」を見るときはこの前提を添えてください。

6-3. 利用上の制約 — 医師個人の評価には使えない

CMS 自身が明記しているとおり、このデータは個々の医師の医療の質を評価するものではありません。専門科や患者集団の違いで処方パターンは大きく変わります。医師単位の結果を出すときは、NPI の併記と免責が要ります。

7. 分析の可否

このデータで分かること・分からないこと

患者 ID も診断名も無い年次の集計表、という構造からできることが決まります。地域・専門科・費用・集中度は出せますが、患者単位の治療経過や適応症別の分析はできません。

8. 一次資料

9. まとめ

  • Medicare は米国の高齢者向け公的保険。Part D はその「薬局で受け取る処方薬」の給付で、CY2024 の加入者は 5,437 万人
  • CMS は Part D の請求を「処方医 × 薬剤 × 年」で集計し、医師名付きで無料公開している(CY2024 の主表は 2,802 万行)。日本にはこの粒度の公開データはない
  • 3 つの表を使い分け、11 件未満の抑制・リベート控除前の費用・30 日換算の 3 点を押さえれば、読み間違いの大半は防げる

次のステップ

このデータを SQL を書かずに探索する仕組みが Text-to-SQL です。技術説明ページ「Text-to-SQL」で、質問が SQL になり、結果が表・グラフ・地図のどれにでもなる流れを説明します。

出典

  • CMS, Medicare Part D Prescribers(by Provider and Drug / by Provider / by Geography and Drug), CY2024. https://data.cms.gov/provider-summary-by-type-of-service/medicare-part-d-prescribers
  • CMS, Medicare Part D Prescribers - by Provider and Drug Data Dictionary(2024-10-30 版). https://data.cms.gov/resources/medicare-part-d-prescribers-by-provider-and-drug-data-dictionary
  • CMS, Medicare Part D Prescribers - by Provider Data Dictionary. https://data.cms.gov/resources/medicare-part-d-prescribers-by-provider-data-dictionary
  • CMS, Medicare Part D Prescribers - by Geography and Drug Data Dictionary. https://data.cms.gov/resources/medicare-part-d-prescribers-by-geography-and-drug-data-dictionary
  • CMS, Medicare Part D Prescribers Datasets: A Methodological Overview
  • CMS, Medicare Monthly Enrollment, CY2024. https://data.cms.gov/summary-statistics-on-beneficiary-enrollment/medicare-and-medicaid-reports/medicare-monthly-enrollment
  • 厚生労働省, NDB オープンデータ
  • 本ページの数値は上記データセットの API から 2026-09-22 に取得して確認した実測値です

コードは GitHub で公開しています: github.com/HerzLeben/medicare-partd-text-to-sql