国と自治体の医療機関CSVを“正規化”して使えるデータにする話

どうも〜おかむーです!今日は医療機関データの話をエンジニア視点でサクッとやりますよ〜
- これ見てくださいよ:政府のhospital CSV(digital.go.jp)や都道府県のCSVはあるけど形式バラバラ
- 結局、実運用で使えるかは「正規化」と「差分同期」が決め手
- 提案:スキーマ契約+ID連携+自動検証パイプラインで“一本化”する
結論
国が打ち出した「行政データの機械可読性ルール」(内閣官房の議事録/決定、2026年)などは前向きだけど、医療機関データはまだ現場で使いづらい。要するに、フォーマット統一+恒久的ID(法人番号+医療機関コード)をデータ契約に定め、差分アップデートとCI検証を回せば再利用コストが劇的に下がるということです。
レポート本文
現状観察(データソースの例)
これ見てくださいよ:digital.go.jpのhospital.csv(https://www.digital.go.jp/.../xxxxxx_hospital.csv)や、都道府県・市区町村のオープンデータカタログ(東京都や埼玉など)が散在してるんですけど、問題点が山盛り。
主な課題
- スキーマの不一致:カラム名や順序、必須/任意がバラバラ
- ID欠損・重複:法人番号はあるけど医療機関コードが無い、同一施設が複数レコードに
- 位置情報の精度:緯度経度の有無や投影系の違い
- 更新方式が非効率:CSVフルダウンロードのみで差分が取れない
- 文字コード・全角半角問題
要するに、データを結合して使うまでの前処理コストが高くて、市民アプリや研究で使いにくいんですよね。
政策目標と実績のギャップ
政府は「機械可読性のルール」を決めてデータ整形負担を減らす、と明確な方向を示した(内閣官房の資料)。ただ実績を見ると、全国の公開CSVのうち「標準スキーマ準拠」「恒久IDつき」「差分供給あり」の三つを満たすデータは少数です。目標は明確でも、現場運用の体制や留意点(自治体のRPA運用、人的更新)がボトルネックになってます。
エンジニア的ソリューション設計
エンジニア的に言うと、ここはAPI一本+データ契約で解決する話なんですよね。具体要素は以下。
1) スキーマ契約(JSON Schema)
- 必須フィールド:法人番号、医療機関コード、名称、住所(正規化済み)、緯度経度
- メタ:作成日時、更新日時、発行元URI
2) 恒久的識別子の優先付与
- 法人番号+国公的医療機関コードを正規IDにする
- IDが無い場合は、住所正規化+名称正規化で候補マージ(ファジーマッチ)
3) 差分配信(Change Feed)
- 毎回のフルCSVではなく、SSE/ウェブフック or JSONL差分ファイルを提供
4) CIによる品質ゲート
- 新版公開時にスキーマ検証、重複検出、ジオコーディングエラー検出を自動でブロック
5) 公開API & SDK
- OData/GraphQLの薄いレイヤーを用意して、パッケージ化されたPython/Rubyクライアントを配る
実装の小さな例(コード)
エンジニア的に言うと、まずpandasで取り込んで正規化して差分を取るのが手早いです。例えば:
import pandas as pd
old = pd.read_csv('hospital_prev.csv', dtype=str)
new = pd.read_csv('hospital.csv', dtype=str)
正規化関数は省略
new['key'] = new['corporate_number'].fillna('') + '|' + new['medical_code'].fillna('')
old['key'] = old['corporate_number'].fillna('') + '|' + old['medical_code'].fillna('')
added = new[~new['key'].isin(old['key'])]
removed = old[~old['key'].isin(new['key'])]
changed = new[new['key'].isin(old['key']) & (new != old).any(axis=1)]
要するに、この流れをCIに組み込んでおけば「今日のデータで壊れる」話が減るんです。
データ利活用のシナリオとKPI
- KPI案:全国公開医療機関データの「一貫したスキーマ率」80%、差分提供率70%を2年で目指す
- 活用例:災害時の受け入れ検索API、医療供給の空間分析、地域包括ケアの可視化
実運用での落とし穴と対処
- 人的更新の遅れ → 自動スクレイピングではなく、自治体が出す編集フォーム+ログ承認ワークフローを整備
- 旧システムからの移行 → バックアップ同期期間を設けてフェイルセーフなロールアウト
まとめ
- 医療機関CSVはあるけど「使える状態」にするための工程が足りない
- 解決は技術では簡単:スキーマ契約、恒久ID、差分配信、CI品質ゲートの四点セット
- 政策目標(機械可読性ルール)はいいスタート。現場の運用設計とAPI提供が追いつけば実用性は一気に上がる
おかむーから一言
テクノロジーって結局「継続可能な運用」を作れるかどうかのゲームなんですよ!まずは小さくIDと差分を約束して、現場と一緒に回していきましょう!
情報ソース
- https://notice.go.jp/docs/status_notice.csv
- https://www5.cao.go.jp/j-j/wp/wp-je24/csv/d1-1-4.csv
- https://www.digital.go.jp/assets/contents/node/basic_page/field_ref_resources/0066e8a8-6734-44ab-a9a9-8e09ba9cb508/xxxxxx_hospital.csv
- https://www.env.go.jp/content/900398071.csv
- https://www.digital.go.jp/assets/contents/node/basic_page/field_ref_resources/ea851c04-54d0-43ab-b352-4cb537ee5347/20210609_resources_survey_answers_04.csv
- https://www.zhihu.com/question/290714454
- https://www.cas.go.jp/jp/seisaku/digital_gyozaikaikaku/kakusyoDX4/kakusyoDX4.html
- https://www.zhihu.com/question/6430289390
- https://www.digital.go.jp/assets/contents/node/basic_page/field_ref_resources/256dcba6-b936-4031-b88d-3abb27e27f9b/7c809f2f/20260331_meeting_executive_outline_05.pdf
- https://www.zhihu.com/question/38923279
- https://catalog.data.metro.tokyo.lg.jp/dataset
- https://portal.data.metro.tokyo.lg.jp/
- https://opendata.pref.saitama.lg.jp/datasets
- https://opendata.pref.saitama.lg.jp/
- https://www.city.niigata.lg.jp/shisei/seisaku/it/open-data/
シェアする
関連レポート

公共予約システムの“ログインからAPI化”ロードマップ:パスワードレスで運用コストを下げる技術提案
公共施設予約の認証とデータを段階的にAPI化して運用コストを下げる技術ロードマップを紹介します。

政府データを“つなげる”発想:省庁バラバラを超えるフェデレーション戦略
フェデレーション層で省庁データをつなぎ、PDF混在を克服する実践的な技術案を示す。

政策ダッシュボードは“作るだけ”じゃダメ!KPIを自動で監査するパイプライン設計
政策ダッシュボードの数値を自動監査するパイプライン設計案。API・スキーマ・差分管理でKPIの信頼性を上げる技術手法を紹介します。