医療機関コードは10桁の数値からなる.最初の2桁が都道府県コード,次の1桁が区分点数コード,後半7桁が医療機関番号である.医療機関番号は都道府県内では一意であるが,都道府県をまたぐと一意ではなくなる.今回はその医療機関番号から医療機関コードを取得する方法を投稿する.
データのダウンロード
厚生労働省の各地方厚生局でコード内容別医療機関一覧表を検索する
厚生労働省の地方厚生局へのリンクはここにある.北海道厚生局,東北厚生局,関東信越厚生局,東海北陸厚生局,近畿厚生局,中国四国厚生局,四国厚生支局,九州厚生局の8個がある.

北海道厚生局の検索ウィンドウに「コード内容別医療機関一覧表」と入力する.

検索結果の最初のリンクをクリックする.

北海道厚生局の場合,ダウンロードしたファイル名に注意が必要である.それぞれ「医科(病院)」「医科(診療所)」「歯科」「薬局」と書き換えておく.

東北厚生局の場合,ファイル名に「医科」「歯科併設」「歯科」「医科併設」「薬局」の文字列があるため,このままとしておく.

関東信越厚生局の場合もファイル名に「医科」「歯科併設」「歯科」「医科併設」「薬局」の文字列があるため,このままとしておく.

東海北陸厚生局の場合,ファイル名に「医科」「歯科」「薬局」の文字列があるためこのままとしておく.

近畿厚生局の場合,ファイル名に「ika」「sikaheisetu」「sika」「ikaheisetu」「yakkyoku」の文字列があるためこのままとしておく.

中国四国厚生局の場合,ファイル名に「医科」「歯科」「薬局」の文字列があるためこのままとしておく.

四国厚生支局の場合,ファイル名に「医科」「歯科」「薬局」の文字列があるためこのままとしておく.

九州厚生局の場合,ファイル名に「ika」「shika」「yakkyoku」の文字列があるためこのままとしておく.

ZIPCLOUDから郵便番号と住所のデータをダウンロードする
日本郵便の郵便番号データダウンロードでも良いのだが,筆者はZIPCLOUDの郵便番号データのダウンロードを使用している.
Power Queryでの処理
「データ」タブの「データの取得」「ファイルから」「フォルダーから」と進む.

厚生局ごとにファイルをまとめたフォルダーを指定する.

ダイアログで「結合」「データの結合と変換」と進む.これはファイル名を取り込むための処置である.

「ファイルの結合」で表示オプションのシートを選択してOKする.

不要な行のフィルター
通し番号の列のフィルターで不要な行のチェックを外す.

通し番号の列のフィルターで不要な行のチェックを外す.

住所の列から郵便番号の切り出し
住所の列で右クリックして「列の分割」「文字数による分割」へと進む.

「文字数」を9,「分割」を「できるだけ左側で1回」としOKをクリックする.

郵便番号の列で右クリックして「値の置換」を選択する.

「検索する値」に「〒」,「置換後」は空白のままOKする.

「検索する値」に「ー」,「置換後」を空白のままOKする.

年月日の整形
年月日の列で右クリックして「値の置換」と進む.

「検索する値」に「.」,「置換後」に「/」と入力しOKする.

「検索する値」に「元」,「置換後」に「1」と入力しOKする.

年月日の列で右クリックして「型の変更」「日付」へと進む.

列名の決定
列名は区分点数コード,医療機関番号,医療機関名,郵便番号,所在地,電話番号,経営母体,代表者名,届出年月日,種別とする.
医療機関番号の整形
7桁の「医療機関番号」の列で右クリックして「値の置換」へと進む.北海道厚生局のファイルではコンマだけだが,他の地方厚生局では他にピリオド,半角ハイフン,半角スペース,全角中黒が混入していた.厚生局内では意味のある区切りなのだろうが,データクレンジングでは邪魔なだけである.

「検索する値」に「,」,「置換後」は空白のままOKする.

区分点数コードの整形
最も左側の「区分点数コード」列で「列の分割」を駆使して「医科」「歯科」「薬局」の文字列を切り出したあとの処置である.右クリックして「値の置換」へと進む.

「検索する値」に「医科」,「置換後」に「1」と入力しOKする.

「検索する値」に「歯科」,「置換後」に「3」と入力しOKする.

「検索する値」に「薬局」,「置換後」に「4」と入力しOKする.

閉じて読み込む
最後に「閉じて読み込む」を押下して読み込む.テーブルの右側のヘッダーに「管轄」とタイプ入力し,全行に「北海道厚生局」と入力する.
すべての地方厚生局で上記の作業を繰り返す
続いて東北厚生局,関東信越厚生局,東海北陸厚生局,近畿厚生局,中国四国厚生局,四国厚生支局,九州厚生局のファイルで上記の作業を繰り返す.厚生局ごとにファイル名,医療機関番号に混入している文字列のクセが異なるが,Power Queryで対応できる範疇である.
8つのファイル内容をコピペで結合する
8つのファイルからPower Queryで結合しようとしても,なぜかエラーが発生して統合できない.やむなくコピペで対応する.2025年8月1日時点での全国の医療機関番号を付与したEXCELのブックを置いておく.M_MedicalInstitution このファイルに付与してある医療機関番号は7桁であり,10桁の医療機関コードとは異なるので注意が必要である.
タブ区切りテキストで保存
上記のファイルをタブ区切りテキストで保存する.
郵便番号マスターのテキストファイルへの書き出し
ZIPCLOUDからダウンロードしたcsvファイルをEXCELで開き,タブ区切りテキストで保存する.ファイル名はM_ZIPCODEとする.
日本郵便の郵便番号データダウンロードから事業所の個別郵便番号のダウンロードへと進み,最新データのダウンロードを行う.ダウンロードしたファイルをEXCELで開き,M_JIGYOSYOのファイル名で保存し,タブ区切りテキストで保存する.
SQL Serverでの処理
ウィザードによるインポート
ウィザードを使って上記のM_MedicalInstitution.txtとM_ZIPCODE.txt,M_JIGYOSYO.txtをSQL Serverにインポートする.



クエリでの照合
単純にM_MedicalInstituionテーブルとM_ZIPCODEテーブルを結合するだけでは医療機関コードがNULLの行が1134件出現する.
SELECT LEFT(Z.全国地方公共団体コード, 2)
+[区分点数コード]
+[医療機関番号] AS '医療機関コード'
,[医療機関名]
,M.[郵便番号]
,Z.都道府県名
,[所在地]
,[電話番号]
,[経営母体]
,[代表者名]
,[届出年月日]
,[種別]
,[管轄]
FROM [MedicalAreaDB].[dbo].[M_MedicalInstitution] AS M
LEFT JOIN dbo.M_ZIPCODE AS Z
ON M.郵便番号 = Z.郵便番号
WHERE LEFT(Z.全国地方公共団体コード, 2)
+[区分点数コード]
+[医療機関番号] IS NULL
(1134 行に影響しました)
先にダウンロードしたM_JIGYOSYOテーブルも結合してみる.
SELECT CASE WHEN LEFT(Z.全国地方公共団体コード, 2) + [区分点数コード] +[医療機関番号] IS NULL
THEN LEFT(J.所在地のJISコード, 2) + [区分点数コード] +[医療機関番号]
ELSE LEFT(Z.全国地方公共団体コード, 2) + [区分点数コード] +[医療機関番号] END AS '医療機関コード'
,[医療機関名]
,M.[郵便番号]
,Z.都道府県名
,[所在地]
,[電話番号]
,[経営母体]
,[代表者名]
,[届出年月日]
,[種別]
,[管轄]
FROM [MedicalAreaDB].[dbo].[M_MedicalInstitution] AS M
LEFT JOIN dbo.M_ZIPCODE AS Z
ON M.郵便番号 = Z.郵便番号
LEFT JOIN dbo.M_JIGYOSYO AS J
ON M.郵便番号 = J.大口事業所個別番号
WHERE CASE WHEN LEFT(Z.全国地方公共団体コード, 2) + [区分点数コード] +[医療機関番号] IS NULL
THEN LEFT(J.所在地のJISコード, 2) + [区分点数コード] +[医療機関番号]
ELSE LEFT(Z.全国地方公共団体コード, 2) + [区分点数コード] +[医療機関番号] END IS NULL
(51 行に影響しました)
1134行から51行に減った.
M_MedicalInstitutionテーブル構造の変更
「医療機関コード」列と「都道府県名」列を追加する.

テーブルのUPDATE
下記クエリを実行してテーブルを更新する.
UPDATE M_MedicalInstitution
SET 医療機関コード = CASE WHEN LEFT(Z.全国地方公共団体コード, 2) + [区分点数コード] +[医療機関番号] IS NULL
THEN LEFT(J.所在地のJISコード, 2) + [区分点数コード] +[医療機関番号]
ELSE LEFT(Z.全国地方公共団体コード, 2) + [区分点数コード] +[医療機関番号] END
, 都道府県名 = CASE WHEN Z.都道府県名 IS NULL THEN J.都道府県名 ELSE Z.都道府県名 END
FROM dbo.M_MedicalInstitution AS M
LEFT JOIN dbo.M_ZIPCODE AS Z
ON M.郵便番号 = Z.郵便番号
LEFT JOIN dbo.M_JIGYOSYO AS J
ON M.郵便番号 = J.大口事業所個別番号
(216322 行に影響しました)
残る51行の医療機関についてはさらなる調査と対応が必要である.
まとめ
厚生労働省の地方厚生局のサイトから医療機関番号を取得し,日本郵便の情報を追加して医療機関コードを取得した.
216,322件の医療機関については医療機関コードを取得できたが,51件の医療機関については医療機関コードを取得できなかった.
そもそも厚生労働省が10桁の医療機関コードを公開していないために起こった事態であり,政府が主導して公開すべきである.各地方厚生局ごとにファイル名の命名規則,医療機関番号に混入する余分な文字が異なっており,政府が主導して統一すべきである.九州厚生局に限っては都道府県名が住所に記載されており,他の地方厚生局もこれに倣うべきである.
医療機関番号は毎月更新されており,本記事で公開した医療機関番号は2025年8月1日時点のものである.


“全国の医療機関コードを取得する” への1件の返信