日計集計ソフト開発の経緯と実際

PUBLISHED 開発 #Claude Code #電子カルテ #コスト削減

電子カルテ・医療システムを操作する記事です。ご使用のシステムの利用規約を確認のうえ、自己責任でお試しください。患者さんの情報は、外部の生成AIに送らないでください。

病名チェッカーの開発をきっかけに、電子カルテのCSVデータを活用した日計集計ソフトを自作しました。売上やコスト、粗利、在庫管理、会計連携までを自動化した結果、診療後の締め作業は20〜30分から5分程度まで短縮できました。今回はその開発経緯と実際の運用についてご紹介します。

クリニックの経営状態を把握するために、先生方はどのようなツールを使われているでしょうか。私は従来、Googleスプレッドシートを使用していました。日々の売上やコストの管理に加え、抗原検査を何件実施したか、それに連動した在庫管理なども併せて行っていました。これはこれで当初は非常に役立っており、経営状況を把握するという点では大きな問題はありませんでした。ただ、データを一つひとつコピー&ペーストして入力しなければならず、その作業に手間がかかるという不便さを感じるようになっていました。

決定的に困るほどではなかったため、しばらくはそのまま運用していたのですが、プログラミングを学ぶ過程で「これも自動化できるのではないか」と考えるようになりました。特に病名チェッカーを作成した際に、電子カルテからCSVファイルを取得できることに気づいたことが大きなきっかけでした。そこで、日計集計についても自動化を試みることにしました。今回は、その開発の経緯と、現在どのように運用しているのかについてご紹介したいと思います。

そもそもなぜクリニックの状態を把握しようと思ったか

開業当初は本当にやることが多く、正直なところ経営状況を細かく把握するところまで手が回っていませんでした。また、幸か不幸かCOVID-19の影響で世の中が大きく混乱し、診療報酬も優遇されていた時期でもあり、クリニック経営という面では、どんぶり勘定でも何とか運営できてしまっていたという事情もありました。そのため、実際にいくらコストがかかっているのか、どの程度の売上があれば経営的に安定するのかといったことについても、当時はほとんど把握できていませんでした。

コロナが落ち着き、経営状態にシビアに向き合う

しかし、COVID-19が2類感染症から5類感染症へ移行し、それに伴って診療報酬も徐々に平時へと戻っていきました。そうなると、クリニック経営もコロナ禍の特殊な状況から本来の姿へ戻っていくことになります。その頃から売上の減少もあり、私自身も「しっかりと経営状態を把握しなければならない」と考えるようになりました。

それまでは売上についても細かく検討することはあまりなく、日計の売上を見て、「今日は良さそうだ」「少し少ないな」といった程度の把握にとどまっていました。しかし、実際に経営状況を分析しようとすると、売上だけでは不十分です。売上については電子カルテから月計表や日計表を出力すれば簡単に確認できますが、実際にどれだけコストがかかっているのかは別途把握しなければなりません。当院の経営は比較的シンプルで、実務的なコストは抗原検査や血液検査などの検査関連費用になります。そのため、こうしたコストも含めて集計し、粗利がどの程度あるのか、利益率はどうなっているのかを把握する必要があると考えるようになりました。

Googleスプレッドシートを使用する

従来は、MacのNumbersという表計算ソフトを使っていました。開院前には、年間でどの程度のコストがかかるのかを計算し、それを12で割って月額の固定費がどのくらいになるのかを把握するようにはしていました。おそらく多くの先生方も、開業前には同じような試算をされているのではないかと思います。ただ、実際に開院してみると、想定していなかった費用が発生したり、逆に想定よりも安く済むものもあったりして、当初の計画との乖離が徐々に大きくなっていきます。本来であれば、その都度数字をアップデートしていくべきだったのですが、なかなかそこまで手が回らず、気が付けばそのファイルの存在すら忘れていました。

しかしそれではまずいと思い、毎日使用しているGoogle Chromeから手軽にアクセスできるGoogleスプレッドシートを使ってみることにしました。ブラウザを開けばすぐ目に入りますし、日常的に確認する習慣もつけやすいと考えたからです。

最初に作成したのは、日計を把握するためのシートでした。1日の売上に加え、抗原検査や血液検査など診療に連動して発生するコストを入力し、その日の粗利と粗利益率を計算するというシンプルなものです。固定費は含めず、まずは診療活動そのものがどの程度利益を生み出しているのかを把握することから始めました。

その後、少しずつ項目を追加していきました。患者数や月平均売上、現在の平均売上から計算した月間売上予測、さらには抗原検査の実施件数や在庫管理なども組み込むようになりました。例えば、「今月はあとどの程度検査が出そうか」「追加発注はいつ頃必要か」といったことも、数字から判断できるようにしていきました。

それと同時に、クリニック全体のコスト把握にも取り組みました。電子カルテの利用料や家賃をはじめ、クレジットカードの利用履歴、銀行口座の引き落とし履歴を確認しながら、クリニック運営に関わる費用を全て洗い出しました。もちろん、光熱費や医療廃棄物処理費用のように毎月変動するものについては概算になりますが、固定的な費用については可能な限り正確に記録しました。そして年間コストを算出し、それを12で割ることで月額コストを把握できるようにしました。さらに年間の診療日数もあらかじめカレンダーで計算し、1日あたりの固定費がいくらになるのかまで算出しました。正直なところ、あまり見たくない数字でもありましたが、経営状況を正しく理解するためには避けて通れない部分でもありました。

以前のGoogleスプレッドシートを使用したクリニックの管理については、記事にしたことがあります。

しばらくはこれでうまくいっていた

Googleスプレッドシートを使って日々の経営データや固定費を把握するようになると、クリニックの経営状態がかなりクリアに見えるようになりました。実際に数字で確認してみると、当初自分が想像していたほど厳しい状況ではないことも分かりました。同時にほとんど使っていないにもかかわらず支払い続けていた固定費などもあぶり出すことが出来ました。

経営状況が具体的な数字に落とし込まれることにより、1日あたりの平均売上や、年間でどの程度の診療報酬売上があれば経営が成り立つのかといった目安も把握できるようになりました。もちろん、税金などの変動要素もあるため正確な計算というわけではありませんが、どんぶり勘定で経営していた頃と比べると、数字を通して客観的に状況を把握できるようになったことは大きな変化でした。これが精神的な安心感にもつながり、閑散期には「今日は最低限固定費を賄えるところまでは頑張ろう」と考えられるようになりましたし、逆に繁忙期には「今日はこれだけ売上があったので、売上の少ない日をカバーできた」といったことも数字で確認できるようになりました。

この方法は、実際には2年ほど使っていました。長期間運用していましたが、特別大きな問題があったわけではありません。ただスプレッドシートで管理している以上、自分で売上や抗原検査の件数などを電子カルテから取得し、毎日コピー&ペーストしなければなりませんでした。入力する場所は決まっているので、それほど複雑な作業ではありません。しかし、診療が終わった後の疲れた状態で毎日行う作業としては、次第に面倒に感じるようになっていました。生産的とは言えない定型的な作業に毎日、一定の時間を削がれるのは、地味にストレスになるものです。

病名チェッカーの作成から日計集計ソフトの作成へ

そこで、以前ご紹介した病名チェッカーのソフトの話につながります。こちらは必要に迫られて作成したものだったのですが、その開発過程で、電子カルテからCSV形式でデータを出力できる機能があることに初めて気が付きました。実際に出力したデータを確認してみると、その日の診療報酬上の売上だけではなく、抗原検査の実施件数や血液検査の詳細な項目なども含めて、かなり多くの情報が記録されていました。そこで、「もしかすると、この情報を活用すれば現在行っている手入力作業を省略できるのではないか」と考えるようになりました。こうして試しに開発を始めたのが、現在の日計集計ソフトです。病名チェッカーの開発がなければ、おそらくこのソフトも作成に至らなかったと思います。

日計集計ソフト

こちらは病名チェッカーでCSVデータを扱う経験があったこともあり、思ったより早く形になりました。その頃にはClaude Codeも導入していたため、事前にChatGPTと壁打ちをしながら実装方針を固め、その内容をもとにClaude Codeへ指示を出して開発を進めていきました。そのため、当初想像していたよりもスムーズに開発することができました。

実際の開発では、検査項目ごとのコスト計算や生化学血液検査の丸め処理など、細かな部分で調整が必要な箇所もありました。しかし、最終的にはやりたかった機能の大部分を実装することができました。現在はCSVファイルをコマンド一つで取り込むだけで、その日の売上、コスト、粗利、粗利益率、患者数などを自動で算出できます。また、抗原検査の実施件数や血液検査の内容についても自動で集計できるようになっています。

さらに、月次の分析機能も実装しました。これまで手計算で行っていた月間売上や月間売上予測、累計患者数、1日あたりの平均患者数、平均コストなども自動で集計できるようになっています。それと同時に年次の分析も行えるようにしています。現在のペースで推移した場合の年間売上予測に加え、年間売上目標を設定し、その達成のためには今後1日あたりどの程度の売上が必要なのか、現在どの程度目標と乖離しているのかといったことも確認できるようにしています。分析項目については、クリニックごとに見たい数字が異なると思いますので、作り込もうと思えばさらに多くの機能を追加できます。

このソフトの良いところは、経営状況を客観的な数字で把握できることです。正直なところ、数字を見るのが気が重い日もあります。しかし、売上が悪いと感じる時期でも、実際に数字で確認するとそれほど問題がないこともありますし、逆に本当に注意が必要な状況であることが分かる場合もあります。経営は印象だけで判断すると、どうしても感覚に引っ張られてしまいます。忙しいと感じていても、患者単価が低く、利益が十分に出ていないことがありますし、逆に暇だと思っていても数字上はそれほど悪くないこともあります。そうした感覚と実態のズレを補正し、冷静に現状を把握するためにも、このように数字で経営を見る仕組みは非常に役立っていると感じています。

会計ソフトとの連携

さらに、私は会計ソフトとしてマネーフォワードを利用しています。診療報酬の売上については、自由診療も含めて日ごとに仕訳を行う必要があります。単純に保険診療と自由診療でいくら売上があったのかというだけではなく、その内訳として現金、クレジットカード決済、デジスマ決済等の入力も必要です。これまでは手入力で対応していましたが、マネーフォワードには仕訳辞書の機能があるため、数字を確認してコピー&ペーストするだけで済みます。数クリックで終わる作業ですので、正直なところそこまで大きな負担ではありませんでした。ただ、せっかく日計集計ソフトを作成したのであれば、この部分もしスムーズにできるのではないかと思い、併せて改善してみることにしました。

具体的には、日計集計ソフトの中に会計機能を追加しました。保険診療収入や自由診療収入については、電子カルテから取得したCSVデータをもとに自動で算出します。一方で、当院では自動釣銭機も利用しているため、現金部分などについてはどうしても一部手入力が必要になります。ただし、デジスマ診療で決済された金額については自動で計算されるため、実際には残りの数字を少し調整する程度です。その後、「保存後CSV出力」を押すだけで、マネーフォワードにそのままインポートできる形式のCSVファイルが作成されるようになっています。

現在では、そのCSVをマネーフォワードへ取り込むだけで、その日の仕訳作業が完了します。もともとそこまで不便な作業ではありませんでしたが、一度この運用を経験してしまうと、以前のように数字を見ながらコピー&ペーストを繰り返していた頃には戻れないなと感じています。日計集計ソフトそのものもそうですが、こうした小さな作業を一つずつ自動化していくことで、日々の業務は思っている以上に楽になるものだと実感しています。

抗原検査キットの在庫管理

抗原検査キットの在庫管理についても、以前はGoogleスプレッドシートで行っていました。1日に何個使用したかを手入力し、その数字をもとに在庫数から差し引いて、院内にどの程度在庫が残っているのかを把握していました。それ以前は在庫数そのものを正確に把握できていなかったため、Googleスプレッドシートを導入したことで管理できるようになった点は非常に良かったと思います。ただ、やはり一つひとつ手入力しながら計算しなければならず、その作業は少し面倒に感じていました。

そこで、この機能も日計集計ソフトの中に取り込みました。現在では、抗原検査の実施件数をもとに在庫数が自動で反映されるため、院内にいくつ在庫が残っているのかをリアルタイムで把握できるようになっています。そのため、「在庫が何個を下回ったら発注する」といった運用もしやすくなりました。また、先ほどご紹介した月次データと組み合わせることで、今月はあとどの程度使用しそうかという予測も立てられるため、発注のタイミングも判断しやすくなっています。

実際のところ、備品の発注を院長自ら行っているクリニックはそれほど多くないと思いますので、この機能を利用するのは事務スタッフの方になるかもしれません。ただ、日常業務の中で在庫状況を確認したり、発注時期を判断したりする手間を減らせるという意味では、こうした機能も意外と便利だと感じています。

ToDoリストの作成

クリニックでは、毎朝出勤したら必ず行う作業や、診療終了後に確認してから帰る作業など、ルーティンとして決まっている業務があると思います。そこで、そうした項目のチェックリストも日計集計ソフトの中に組み込んでしまおうと考えました。チェック項目の機能を追加し、例えばレジの立ち上げや電子処方箋へのログインといった診療前の作業、診療後の病名チェックや日計締め、検査会社への依頼が完了したかどうかなどを確認できるようにしています。そして、それらをすべてチェックし終えたら帰宅できるという運用にしています。

このようなチェックリスト自体は、多くのクリニックでも作成されていると思います。ただ、この機能の良いところは、一つのアプリの中に組み込んでしまえることです。チェックリストは別の紙、売上管理は別のソフト、在庫管理は別の場所というように情報が分散していると、どうしても確認作業が煩雑になります。その点、日常的に開く日計集計ソフトの中にまとめておけば、自然と目に入りますし、確認漏れも起こりにくくなります。本当にシンプルな機能ではあるのですが、いろいろな情報を一か所に集約しておくことで、日々の業務をかなりスムーズに進められるようになったと感じています。

今のソフトの紹介をClaude Codeに書いてもらったので供覧します

ここまで、私自身の視点でこの日計集計ソフトについてご紹介してきました。ただ、実際にどのような機能があるのかという点については、開発を進める過程でClaude Codeにも整理してもらっていました。

せっかくですので、ここからは少し視点を変えて、Claude Codeにまとめてもらった機能紹介も参考までに掲載しておこうと思います。私自身が普段使っている立場から見た説明とはまた違った切り口になっていますので、「こういう機能があるのか」という参考程度にご覧いただければと思います。

Article

開業医が自作した「電子カルテCSV自動集計ツール」の全貌

図や表を使って、別のページにまとめています。

ページを開く →

日計集計ソフトにより診療後の締め作業が短縮

このソフトを作ったことで、診療後の締め作業は楽になりました。単純に時間が短縮されたということもありますし、コピー&ペースト作業や手計算が減ったことで、入力ミスや計算ミスもなくなりました。以前はどれだけ注意していても一定の割合でミスが発生していましたが、人の手を介することなく、コンピューター側で処理するようになったことで、そのような問題は解消されています。

これらの実務ですが、一つひとつの作業を分解すると数分程度のものばかりです。ただ、それらが積み重なると意外と時間を取られていて、診療後のこれらの作業には何だかんだで10分以上かかっていました。それが現在では、数クリック、数分で終わるようになりましたし、手順も単純になったため、ほとんど頭を使わずに処理できるようになりました。また、Googleスプレッドシートで管理していた頃よりも把握できる情報も増えたため、経営状況の確認という意味でも役立っています。

病名チェッカー+日計集計ソフトにより、診療後の締め作業が20〜30分→5分に短縮

前回ご紹介した病名チェッカーと、今回ご紹介している日計集計ソフト。この2つが合わさることで、診療後の締め作業や事務作業は大幅に短縮されました。特に繁忙期は、病名チェックの方にかなり時間を取られていましたが、現在はコマンド一つで完了します。また、日計集計についても、忙しい日であっても暇な日であっても一定の時間が必要だったのですが、それもほぼ自動化することができました。現在はこの2つのソフト自体は独立しているものの、ショートカットやスクリプトを組み合わせることで連携させており、ターミナルでコマンド1つを実行するだけで、一連の処理が完結するようになっています。

今回の見出しは少し大げさに見えるかもしれません。しかし、繁忙期には実際に20〜30分かかっていた作業が、現在では5分程度で終わるようになりました。病名チェックは暇な日であればかかる時間は短かったのですが、それでも会計処理や売上確認、在庫確認といった作業そのものがなくなるわけではありません。そのため、忙しさに関係なく毎日発生していた作業時間が、現在では数分になっています。

私自身、この変化はかなり大きかったと感じています。もちろん一回あたりで見れば数十分の短縮に過ぎないかもしれません。しかし、それが毎日積み重なることを考えると、その効果は決して小さくありません。単純な時間短縮だけではなく、手間も大きく減り、結果として時間短縮とリソース温存の両面で非常に役立っていると感じています。

死んだ時間が生きた時間になるのがテクノロジー

私は、このように生み出された時間には非常に大きな価値があると考えています。あまりこういう言い方はしたくありませんが、単純な事務作業というものは、どうしても後から大きな価値を生み出すものにはなりにくく、どちらかといえば消費するための非生産的な時間になってしまいがちです。一方で、テクノロジーによって浮いた20分は、休息に使うこともできますし、本を読むこともできます。次のフェーズに向けて勉強を始めたり、新しいことに挑戦したり、あるいは早く帰って家族と過ごしたりすることもできます。つまり、これまで消費されていた時間を、生産的な時間へと転換できるわけです。

例えば、テクノロジーによって1日20分の時間を生み出せたとします。週5日であれば100分、4週間で400分になります。さらに年間で考えると、52週で5,200分です。多少の誤差を考慮して5,000分としても、約83時間になります。これは約3.5日分に相当します。3日半あれば旅行に行くこともできますし、新しい勉強を始めることもできます。実際、プログラミングであれば、このくらいの時間があれば基礎を学び、今回ご紹介した日計集計ソフトの原型を作るくらいのところまでは十分到達できるのではないかと思います。

医師にとって、お金はもちろん大切ですし、経営上も重要な指標です。ただ、最終的には時間の価値の方が大きくなってくるのではないかと私は思っています。とはいえ、忙しい先生方が、新たに時間を生み出すことは簡単ではありません。だからこそ、今すでに使っている時間の中から、できるだけ非生産的な部分を減らし、それを意味のある時間へと置き換えていくことが重要になります。そして、そのための最も有力な手段の一つが、今回ご紹介したようなテクノロジーや自動化ツールなのではないかと思っています。

できればご自身で作るのが最適

こうしたソフトは、電子カルテからCSVデータを出力できるのであれば、それをもとに「こういう機能を作りたい」という要件をまとめてソフトウェア会社へ依頼することも可能だと思います。相場については詳しくありませんが、おそらく100万円前後であれば作ってくれる会社もあるのではないでしょうか。もちろん、その後の保守費用や月額利用料などは別途かかると思いますが、ある程度の規模のクリニックであれば十分に投資価値のあるものだと思います。

ただ、このサイトでも繰り返しお話ししている通り、もし可能であればご自身で作るのが一番良いのではないかと思います。実際、市販されている経営分析ソフトや病名チェックシステムには非常に優れたものが数多くあります。しかし、実際に使ってみると機能が多すぎたり、逆に「ここだけもう少しこうだったらいいのに」という部分が残ったりすることも少なくありません。

これは市販ソフトが悪いということではなく、むしろ構造上仕方のないことだと思います。市販ソフトは多くの企業に対応しなければなりませんから、どうしても最大公約数的な設計になります。その結果、機能としては充実していても、自分のクリニックに完全にフィットするものにはなりにくいです。私自身、実際に自分で開発してみて、そのことを強く実感しました。

これまでは、市販ソフトに合わせるか、あるいは不便な部分を我慢して運用するしかありませんでした。しかし現在は、生成AIを活用することで、プログラミング経験がない人でも自分専用のツールを作れる時代になっています。自分で作れば、自分が本当に必要な機能だけを実装できますし、運用しながら少しずつ改良を加えて育てていくこともできます。その結果として、自分の業務に最も合った、使いやすく、過不足のないシステムができあがるのではないかと思います。

まとめ

今回ご紹介した日計集計ソフトは、最初から大きなシステムを作ろうと思って開発したものではありませんでした。もともとはGoogleスプレッドシートで経営状況を把握していたものの、毎日のコピー&ペーストや手入力が少しずつ負担になってきたこと、そして病名チェッカーの開発を通じて電子カルテのCSVデータを活用できることに気付いたことがきっかけでした。

実際に作ってみると、売上やコスト、粗利の把握だけではなく、会計処理や在庫管理、ToDoリストなども一つのシステムに集約できるようになりました。その結果、診療後の締め作業は大幅に短縮され、病名チェッカーと組み合わせることで、繁忙期には20〜30分以上かかっていた事務作業が数分で終わるようになっています。

もちろん、時間短縮そのものも大きなメリットです。しかし私が本当に価値を感じているのは、その時間を別のことに使えるようになったことです。休息に充てることもできますし、勉強や読書、新しい挑戦のための時間にすることもできます。テクノロジーの本質的な価値は、単に作業を速くすることではなく、これまで消費していた非生産的な時間を、意味のある生産的な時間へ変換してくれることにあるのではないかと思っています。

そして現在は、生成AIの登場によって、自分自身の業務に合わせたツールを個人でも作れる時代になりました。市販ソフトも優れていますが、本当に自分の業務にぴったり合ったものを作ろうと思えば、自分で作ることに勝るものはありません。もし日々の業務の中で「少し面倒だな」「毎日同じことをしているな」と感じる作業があるのであれば、それは自動化や改善の余地があるサインかもしれません。今回の記事が、その一歩を踏み出すきっかけになれば幸いです。

About the author この記事を書いた人:内科診療所の院長

IT企業でもコンサル会社でもなく、診療をしている開業医が、コードの作成から運用まで一人で行っています。取り上げるのは、実際に試して運用しているものだけです。

プロフィール →

Consultation

この記事のような仕組みを、先生の診療所でも。

運営者本人が伺って、電子カルテの自動化や集計ツールを導入し、先生ご自身で直し続けられる状態を目指します。まずは30分の事前オンライン相談から。

内容と料金を見る →
Related entries
  1. 014 電子カルテ自動操作ツールTampermonkeyの衝撃
  2. 014 クリニックのホームページをWordPressから自前のサイトに移行しました
  3. 014 簡易病名チェッカーの開発
  4. 014 Tampermonkeyの具体例を動画で
開発の記事をすべて見る →
  1. 014 レセプト請求のUKEファイルから情報を取り出す
  2. 014 業務改善が進みすぎて、効率化しすぎて「やることがなくなる」という話」