2019/04/19

亀の歩みで少しずつ進めているpython化

昨年度から続けてきた社内のpython化。本業の合間に、e-learningの研修を各々で受けたり、歩みは遅いものの少しずつ形にできるようになってきた。下記のグラフも、スタッフが勉強のために作ったもの。e-StatのデータをAPIで取ってきてグラフにしている。

出所: 人口推計 平成30年10月1日現在人口推計 を基に作成

プログラムを組んだ時点では、平成29年10月1日現在の人口推計しか公表されていなかったのだが、4月12日に最新の平成30年分が公表されたため、取得する表の番号を変えただけで、グラフも変わった。こういったところがプログラムの良いところ。

でも、このグラフを作るだけなら、e-Statからデータを落としてきて、エクセルで作業すれば、ものの数分で終わる(プログラムの勉強なので、多少時間がかかっても良いが・・・)。もちろん、ただグラフを書くためだけにpython化を図っているのではない。その先の目的のためなのだが、その先に到達するにはまだまだ時間がかかりそうだ。

2019/04/18

富山を取り上げたのは・・・

CBnewsに記事を掲載いただいた。

富山医療圏の医療環境の変化が示唆するものは - CBnewsマネジメント 富山医療圏の医療環境の変化が示唆するものは - CBnewsマネジメント

富山を選んだ。理由は興味深い※エリアだから。ちなみに、ここ5年では富山にクライアントもいないし分析の依頼もない。ただ、個人的に、現地調査にも行き(もう3年前だった・・・)、定期的に分析している。

たぶん、富山城の一角で撮った写真

※なぜ興味深いか。それは人口40万人(広域合併する前は30万人くらい)の町に、大学・県立・市立・赤十字・済生会があり、それぞれの病院が機能的に非常に充実しているから

趣味だが、昨年末、富山市を電車で縦断。下の写真は岐阜県との県境の富山側の駅。

富山市の南端の猪谷駅

全然、記事と関係ないことばかりを書いたが、富山市は中心市街地活性化基本計画を作っていたり、色々興味深い地域であり、その中でどのような環境変化が起きているか考えると、また面白い。
富山市 富山市中心市街地活性化基本計画 富山市 富山市中心市街地活性化基本計画

記事で紹介した分析は、その切り口などはどのエリアでも使えるものだと思う。お時間があれば、記事をお読みいただけれると幸いだ。

2019/04/17

セミナーのご案内(5/31)

来月末、CBnewsでのセミナーのご案内です。

【第2回】ダウンサイジングに負けない病院へhttps://www.cbnews.jp/seminar/entry/20190409123648
■ 日時 2019年5月31日(金)18:00~20:30(17:30開場)
■ 場所 住友浜松町ビル1F Seminar Room
■ 対象者 医療機関に携わる方、医療に関わる企業の方
■ 受講料 一般価格:12,000円 (税込)  会員価格:9,800円 (税込)

もしご都合がよろしければ、ぜひ、ご参加検討ください。

2019/04/16

病床利用率の変化は、地域の医療需要変化や診療報酬改定の影響を受ける

病院報告の年度ごと・都道府県ごとの病床利用率を整理した。
色が上から下に薄くなっている。つまり、年々利用率が下がっているということ。これは、これまでのセミナーや執筆記事でも、都道府県ごとの数値を折れ線グラフで重ねるとみな「右肩下がり」であると述べてきたとおり。

ヒートマップにしてみて、一部の年度に横筋が見える気がする・・・。(≒とある年度で同じ変化をしている) 例えば、17年度・18年度・19年度あたり。

病床利用率(全病床)の推移
横軸:都道府県コード(0は全国計)、縦軸:年度(平成) 色:濃(利用率高)⇔薄(利用率低)
出所: 病院報告のデータを基に作成

そこで、年度の軸で微分。傾きをグラフに(下図)。18年度・19年度に赤い帯が見えてきた。全国的に利用率が下がったことを意味している。
病床利用率(全病床)の対前年度変化率の推移
横軸・縦軸:上のグラフと同じ 色:青(増加)⇔赤(減少)
出所: 病院報告のデータを基に作成

平成18年度は7対1導入の改定があった年。看護師確保が課題となった病院などでは、病床稼働の適正化を図ったものと思われる。経営的に極めて厳しかったと思われる。

なお、平成22年度のところには青帯が見える。これは利用率が上がったことを意味している。プラス改定だったこの年は、病床利用率もプラスに働いた。また、23年度の一部の県(福島など)に濃い赤が見られるのは東日本大震災の影響だろう。

情報の可視化は、気づかなかったことに気づくきっかけにもなる。

2019/04/15

来院患者の可視化を試みる

医学通信社 月刊/保険診療 2019年4月号に短期連載5回目を掲載いただいた。

今回は病院だけでなく、クリニックも若干意識した内容に。患者の来院状況を把握し、改善したいという課題感は珍しくない。ただし、課題が漠然としている、具体的な取り組みが分からないなど、継続的・組織的な取り組みにまで落とし込めていないところが多い。さらに数値・指標に基づきアクションの見直しまで出来ているところはかなり少ない。

可視化を試みることで、その結果から、漠然とした課題が明確になることもあるし、可視化の試行錯誤をしている中で、課題が明確になることもある。そういったきっかけを掴んでもらえれば・・・というのが今回の記事だ。

しかし、文章をまとめるのは難しい。決められた文字数で簡潔になんて芸当は自分には無理なのだが、編集の力でうまくまとめられている。素晴らしい。

2019/04/11

「介護従事者処遇状況等調査結果」から比較対象の把握の重要性を考える

下記の会議で、平成30年度介護従事者処遇状況等調査結果(案)が示された。

https://www.mhlw.go.jp/stf/shingi2/0000202420_00017.html 第170回社会保障審議会介護給付費分科会(ペーパーレス)資料 平成31年4月10日(水)15:30~17:30 https://www.mhlw.go.jp/stf/shingi2/0000202420_00017.html

「第80表 介護職員の平均給与額等(月給・非常勤の者),サービス種類別,勤続年数別(加算(Ⅰ)~(Ⅴ)を取得している事業所)」の平均給与額をグラフにした。


濃い青線(平成30年平均給与額)が薄い青線(平均29年平均給与額)より上に来ている。昨日の会議では、勤続年数全体で10,850円アップしたと報告がされているようだ。ただし、である。これはあくまでも同じ人が1年でどの程度アップしたかを見ているもの。平成30年の勤続年数10年と、平成29年の勤続年数10年を比較しているのではない。平成30年の勤続年数10年と、その人達の平成29年を比較しているのだ。

それゆえ、平成29年度の調査結果もほぼ同じだ(下記参照)。

そこで、平成30年の勤続年数10年と平成29年の勤続年数10年を比較した。

ほとんど変わってない?? 勤続1~3年くらいは若干アップしたように見える。なお、調査に答えている事業所や職員の変化が給与に影響を与える可能性もあるが、母数はそれぞれ1万人以上いるので、影響はそれほど大きくないだろう。

これらの数値は適切にベースアップされているかなどを把握するためで、極めて重要な意味がある(そのため、基本給など、細分化して調査している)。ただ、「アップした」という意味を正しく理解するためには、何と何を比較しているか分からずにいると勘違いすることもある。注意が必要だ。

2019/04/10

介護事業経営実態調査のデータ取得プログラム

平成29年の介護事業経営実態調査のデータを総務省統計局のe-Statのウェブサイトからダウンロードするpythonプログラム。(注: workfolderは各自設定が必要。また実行すると20くらいのファイルと一気にダウンロードしてしまうので、むやみに実行させないこと)

import requests
import urllib.parse

workfolder = "C:\\tmp\\"

# e-statのエクセルダウンロードボタン押下によるファイル取得処理
def download_table(path):

    # ページアクセス
    session = requests.Session()

    # ボタンクリック
    res = session.get(path)
    res.raise_for_status()

    # レスポンスで返ってきたコンテンツを保存
    contentType = res.headers['Content-Type']
    contentDisposition = res.headers['Content-Disposition']
    ATTRIBUTE = "attachment; filename*=UTF-8''"
    fileName = urllib.parse.unquote(contentDisposition[contentDisposition.find(ATTRIBUTE) + len(ATTRIBUTE):])

    with open(workfolder + fileName, 'wb') as saveFile:
            saveFile.write(res.content)

for id in range(31637406, 31637428): #平成29年介護事業経営実態調査 第23表から第43表まで
    # 表番号指定
    tableID = str(id).zfill(12)
    
    # ファイルダウンロードボタンのURL設定
    api = "https://www.e-stat.go.jp/stat-search/file-download?statInfId={key}&fileKind=0"
    url = api.format(key = tableID)   

    download_table(url)


このプログラムでダウンロードしたファイルを、さらに別プログラムで処理した結果が下記の内容。

意味のないグラフだが、大きな一歩である・・・かもしれないグラフ - 株式会社メディチュア Blog 意味のないグラフだが、大きな一歩である・・・かもしれないグラフ - 株式会社メディチュア Blog

2019/04/09

サンプルプログラム

平成29年の医療施設調査のデータを総務省統計局のe-StatのウェブサイトからAPI経由で取得し、jupyter notebook内でグラフまで表示させるpythonプログラム。

import requests, json
import pandas as pd
import re
import matplotlib.pyplot as plt
import seaborn as sns
%matplotlib inline

# APIキーの指定
apikey = "oooooooooooooooooooooooooooooooooooooooooooooooooo" # 各自取得したAPIキーに置き換え
    
# APIのURL設定
api = "http://api.e-stat.go.jp/rest/2.1/app/json/getStatsData?appId={key}&lang=J&statsDataId=0003286300&metaGetFlg=Y&cntGetFlg=N&sectionHeaderFlg=1"
url = api.format(key = apikey)

# APIにリクエスト
r = requests.get(url)
# JSON形式からデコード
data = json.loads(r.text)

# コード・デコード値取得
class_data = data["GET_STATS_DATA"]["STATISTICAL_DATA"]["CLASS_INF"]["CLASS_OBJ"]
df1 = pd.DataFrame(class_data[1]["CLASS"]) # cat01 年度
df2 = pd.DataFrame(class_data[2]["CLASS"]) # cat02 病床規模
df3 = pd.DataFrame(class_data[3]["CLASS"]) # cat03 データ種類

# データ取得
x_data = []
y_data = []

for value in data["GET_STATS_DATA"]["STATISTICAL_DATA"]["DATA_INF"]["VALUE"]:
    if value["@cat02"] == "1" and value["@cat03"] == "100": # cat02 総数  cat03 総数(病院数)
        x_data.append(value["@cat01"]) # cat01 年度
        y_data.append(value["$"]) # 値
        
# cat01 デコード(西暦の年度抽出)
x_label = []
year = re.compile(r'\d\d\d\d') # 正規表現で西暦抽出

for xlabel in x_data:
    labeldata = df1[df1['@code'] == xlabel]
    x_year = year.search(labeldata['@name'].to_string())
    x_label.append(int(x_year.group()))

# グラフ表示
plt.plot(x_label, y_data)

これを実行すると、下記のようなグラフが表示される。


今年度は、暇を見つけて、プログラムを出していこうかと・・・。

医師の高齢化をどう表現するか

先週CBnewsに掲載いただいた記事(「医師の高齢化」は在宅医療のブレーキに? - CBnewsマネジメント)で、ボツにしたグラフ。診療所医師の都道府県別の平均年齢推移。年齢の違いを色で表現(赤:高 緑:低)。

ただ、残念ながら、情報が多すぎ。グラデーションはきれいだけど、上下関係には意味があまりない。


結果としてどのグラフが残ったかは、CBnewsの記事をご覧いただきたい。

2019/04/07

「医療計画」と「がん計画」の効果を高める

去年お世話になった乃木坂スクールのご紹介。

#11 「医療計画」と「がん計画」の効果を高める~役立つツール「ロジックモデル」を活用して~(地域医療福祉ジャーナリズム特論)|コースのご案内|国際医療福祉大学大学院 乃木坂スクールin赤坂 #11 「医療計画」と「がん計画」の効果を高める~役立つツール「ロジックモデル」を活用して~(地域医療福祉ジャーナリズム特論)|コースのご案内|国際医療福祉大学大学院 乃木坂スクールin赤坂

自分も計画を立てるお手伝いをすることが少なくない。とは言え体系的に学んだわけでもないだけに、こういった内容を講義形式でまとまって聞ける機会は貴重だろう。

乃木坂スクールは他にもいろいろ開講されているようなので、興味があればぜひ。

2019/04/04

医師の高齢化が進む長崎県

CBnewsに記事を掲載いただいた。

「医師の高齢化」は在宅医療のブレーキに? - CBnewsマネジメント 「医師の高齢化」は在宅医療のブレーキに? - CBnewsマネジメント

内容は3月10日のブログ(下記)で触れた分析をベースにした在宅医療に関するもの。

在宅医療の現状を垣間見る - 株式会社メディチュア Blog 在宅医療の現状を垣間見る - 株式会社メディチュア Blog

3月10日時点では、連載の内容にまとめるのは難しいと思っていたが、3月24日にCBnewsのセミナーを拝聴し、医師の高齢化で整理することに決めた。

今回の記事の最後、診療所医師の平均年齢変化をマッピングしたものがある。見てもらえば、長崎県で高齢化が進んでいることが分かる。以前、長崎で「医師の高齢化が進んでいる」「高齢化した医師は、勤務実態が確かではない。働いているとしても、戦力は若い人の半分にも満たない」などと言った話を聞いていた。長崎は、医師の高齢化が感覚ではなく、数値で把握できるほど、特異的なエリアだった。