私のプログラミング学習経緯
ここでは、私がプログラミングの学習に至った過程から、現在に至るまでの簡単な経緯をご紹介したいと思います。本家サイト(フルスタック開業医の開業サポート)でも触れたことがありますが、私はもともとパソコンが得意な人間ではありません。プログラミングについても、数年前までは全く知識がありませんでした。WordPressで開業医向けのサイトを作っていると、「もともとパソコンが得意だったのではないか」と思われる先生もいらっしゃるかもしれません。しかし実際には、WordPressもクリニック開業時にホームページを立ち上げる必要に迫られ、四苦八苦しながら何とか作ったのが最初で、そのときに初めて触れたものでした。
具体的に言えば、Amazonで買い物をする、Googleで調べたいことを検索する、電子カルテでカルテ入力するといった一般的な操作はできるものの、それ以外については全くの素人でした。HTMLやCSSと聞いてもよく分からず、PHPやPythonについても、何を指しているのか全く知らないような状態でした。
パソコンに取り組むきっかけ
私がパソコンにある程度詳しくならなければならないと考え、勉強し始めたきっかけは、開業に伴って最初にクリニックのホームページを自分で作ろうとしたことでした。当時調べてみると、開業医でホームページを外注せず自前で作っている施設はかなり少ない状況でした。特に開業医の院長が自作するケースはかなり稀で、多くの場合は業者に委託して作成してもらい、その後の管理費用も継続して支払うという形が一般的でした。
実際に相場を調べると、初期費用はおおよそ50万円前後、さらに月額の管理費として2〜3万円程度かかるケースが多く見られました。現在では多少価格は下がっているかもしれませんが、当時の私にとっても、そして今の自分にとっても決して小さくない金額であり、固定費も含めて考えると、ミニマム開業という自分のスタイルには現実的ではないと感じました。
そうした中で、まだ生成AIも存在しない時代にGoogleで調べていくうちに、工夫すれば自分でもホームページを作成できる可能性があることが分かってきました。さらに調べると、WordPressというサービスがあり、これは世界的に広く普及しており、個人のホームページから小規模店舗、場合によっては大企業でも利用されていることを知りました。このWordPressは基本的に無料で利用でき、サーバー代として月額1,000円前後を支払えば、それ以外の大きな費用がかからない点が大きなメリットでした。
さらに、調べていく中で、WordPressにはテンプレート(テーマ)と呼ばれる仕組みがあり、医療機関向けのものもすでに販売されていることが分かりました。これらは3万円程度の初期投資は必要になりますが、買い切りで継続して使用できるため、十分に価値があると判断し、自分でホームページを作成するところから始めることにしました。これが、私がパソコンに取り組むようになったきっかけです。
WordPressにも四苦八苦
しかし、WordPressの操作そのものも全く触ったことがなく、サーバーを借りることや、ドメインを登録することについても、何も分からないような状況でした。これらについては完全に手探りで、一つ一つ調べながら進めていきました。幸いだったのは、比較的早い段階で「自分でホームページを作る」と決意できたことです。開業までにある程度の時間があったため、当直の空き時間などを使って、ノートパソコンで少しずつ作業を進めていきました。ただ、最初はデータを消してしまったり、ログインできなくなったりと、トラブルも多く、かなり苦労しました。それでも試行錯誤を繰り返しながら、最終的には何とか形にすることができました。
ちなみに、WordPressのテンプレートとしては医療機関向けの「Cure」というテーマを使用しましたが、この操作にも慣れるまでにかなり苦労しました。どこを変更すればどの部分が変わるのかも分からず、何か一つ修正するだけでも相当な時間がかかっていました。途中で、「これは外注した方が、時間単価を考えると合理的なのではないか」と思ったこともありますが、いま振り返ると非常に良い経験だったと感じています。
また、開院後もしばらくは、自分のクリニック名で検索してもホームページが上位に表示されず悩んでいました。最終的には、検索エンジンから除外する設定にチェックを入れてしまっていたことが原因だったのですが、その状態のまま数ヶ月過ごしてしまい、かなり大きな機会損失を経験しました。これも結構大きな失敗だったと思います。
WordPressを法人事業に応用する
しばらくWordPressで自分のホームページを作成した後は、本業の方がCOVID-19の影響もあり忙しくなったため、ITの勉強からやや離れる時期がありました。しかし、少し落ち着いてきた頃、私は開業と同時に、いわゆるプライベートカンパニー、マイクロ法人を設立していたことを改めて意識するようになりました。ただし、当時はそちらに紐づく事業が全くない状態であり、このままではいけないと感じていました。そのような中でふと思ったのが、「自分にはWordPressでサイトを立ち上げた経験がある」という点でした。さらに、自身の医師転職の経験を組み合わせて情報発信を行い、広告を掲載することで事業化できるのではないかと考えました。
そこで文章を書く練習にもなると考え、医師転職に関する情報発信を始めました。医師転職の分野では、いわゆるアフィリエイト広告を掲載し、サイト経由で転職が成立すると一定の報酬が得られる仕組みがあります。医療分野は比較的単価も高く、一人あたり数万円規模になることもあるため、うまくいけば法人事業の一つとして成立する可能性があると考えて取り組みを開始しました。「医師転職トータルサポート」というサイトです。しかしながら、実際には思うようにアクセスは伸びませんでした。ネタ自体は比較的豊富で、100記事以上執筆したものの、徐々に行き詰まりを感じるようになりました。
そうした中で立ち上げたのが、現在の本家サイトである「フルスタック開業医の開業サポート」です。自身の開業経験や立ち上げ時の苦労、実際の運用で役立った工夫などを共有することで、同じ立場の先生方にとって少しでも参考になるのではないかと考えました。このサイトは、情報発信の練習であると同時に、自分自身の知識や経験を整理する場として、またある意味では趣味的な側面も含めて始めたものです。アフィリエイトによる収益化を目的としたものではなく、「発信する場」としての実験的な意味合いが強かったのが当初の位置づけでした。
病名チェッカーの必要性
医師転職サイトと開業医向けのサイトの2つについて、診療の合間に少しずつ記事を書いてはアップするという形で続けていました。そうした中で、一つ大きなきっかけとなる出来事がありました。それが、病名漏れによって高額の返戻を受けてしまった経験です。COVID-19治療薬として、先生もご存知のように、ゾコーバ®がありますが、これは非常に高額で、1人の患者さんあたりおよそ5万円近い費用がかかります。自己負担が3割の場合で約1万5,000円、残りの7割である約3万5,000円は保険請求となります。私自身、COVID-19の病名は入力していたものの、疑い病名を残したままレセプトを提出してしまい、結果として返戻となってしまいました。つまりこの約3万5,000円分を私が自分で負担しなければならない状況になってしまいました。
たった一つの入力ミスで、このような事態が起きた経験から、これは何か対策を講じなければならないと強く感じるようになりました。また、それ以前にもインフルエンザの病名を入力し忘れたまま抗原検査を請求してしまい、返戻を受けるといったことが何度かありました。致命的な金額ではないものの、月に数件は発生しており、どれだけ注意していても一定の確率で起きてしまう問題でした。このような背景もあり、何とか仕組みで防げないかと考えるようになりました。
以前使っていた病名チェッカー レセスタ®
以前、開業当初には病名チェッカー(レセスタ®)を外注して利用していた時期がありました。営業担当の方が非常に熱心で、初年度は大幅に割引して利用できるという提案を受け、当時は保険診療に関して分からないことも多かったため、こちらを契約しました。費用としては、当時で月額5,500円程度だったと記憶しています。しかしながら、実際に運用してみると、開業医の外来診療の中で使用する場面はある程度限られており、正直なところオーバースペックであった印象もありました。次第に指摘されること自体も少なくなり、結果として1年で契約を終了することになりました。
そのような時期にプログラミング学習を始める
ちょうどその頃、何がきっかけだったのかははっきりとは覚えていないのですが、いくつかのサイト運営を続けていく中で、「もう少し改善したい」「もう少し深く理解したい」と感じる場面が徐々に増えてきました。その流れで、プログラミングをきちんと学んでみようと思い、まずは初学者向けとしてよく知られているProgateで学習を始めました。有料会員に登録し、基礎から取り組む形です。
Progateは、学習の入り口としては非常に優れており、いわゆるプログラミング学習で最初につまずきやすい環境構築が不要で、すぐに学習を開始できる点が大きな特徴です。この点については、現在でも初学者の方には勧めやすいサービスだと感じています。ただし、実際に「自分で何かを作れるようになるか」という点については、学習内容と実務との間に一定のギャップがあるのも事実でした。
プログラミング学習をもう一段階進める
Progateで一通り学習を進め、HTMLやCSS、PHPといった基礎的な内容については何となく理解できるようにはなりましたが、実際に自分で何かを作れるレベルにはまだ到達していませんでした。そのような中で、たまたま個人のプログラマーが直接指導してくれる講座を見つけました。正直なところ費用としては決して安くはありませんでしたが、思い切って申し込んでみることにしました。この講座は質問し放題であること、そして学習のペースを完全に自分でコントロールでき、かつ無期限で利用できる点が大きな特徴でした。具体的には「フルスタックエンジニアマスター講座 | SENSE SHARE」という講座で、初級から上級までまとめて購入しました。実際には現在も上級講座の途中の状態ではありますが、学習としてはこの時期に一段階進んだ実感があります。
ちなみに、開業医向けのサイト名を「フルスタック開業医の開業サポート」に変更したのもこの頃です。改めて自分の仕事を振り返ってみると、開業医というのは診療だけでなく、経営やスタッフ管理、IT対応など、さまざまな役割を一人で担っている存在であると感じるようになったためです。
プログラミングの基礎を学ぶ
こちらの講座で特に良かったと感じているのは、自分のパソコン上で開発環境を構築できるようになり、最も高いハードルの一つを越えることができた点です。プログラミングにおいて最も難しい部分の一つは、自分のパソコンに開発環境を構築することだと感じています。この講座では質問ができるため、つまずいた際には講師の方に直接確認しながら疑問を解消し、最終的に自分の環境を整えるところまで到達することができました。一度この環境が構築できてしまえば、その後は継続して使い続けることができます。そうした意味でも、この経験は自分にとっての大きな基礎になったと感じています。
講座を進めながら自分でもサイトを作ってみる
講座を進めていく中で、初級・中級から上級講座の前半に入る頃には、徐々にできることが増えてきた実感がありました。その中で、「今学んでいる内容で何か自分でも作れるものがあるのではないか」と思うようになり、試しに一度、自分でなにか作ってみようという気持ちになりました。
ジャストなタイミングである本に出会う
ちょうどその頃、タイミング良く一冊の本に出会いました。書店で手に取ったその本が、その後の自分のプログラミング学習の進め方を大きく変えるきっかけとなりました。『#100日チャレンジ 毎日連続100本アプリを作ったら人生が変わった』という本が当時話題になっていましたが、読み物としても非常に面白く、強い刺激を受けました。その中でも特に印象に残ったのが、プログラミングに生成AIを活用するという考え方でした。
それまで自分は、学習内容を一つ一つ理解しながら進めることに意識が向いていましたが、「生成AIを使えば、今やっていることももっと効率的に進められるのではないか」と考えるようになり、実際に試してみることにしました。この発想の転換が、その後の自分のプログラミング学習や開発スタイルを大きく変えることになりました。
生成AIにより本当に自分でサイトを作れるようになる
それまで講座でさまざまな内容を学習してきたものの、実際に自分で一からサイトを立ち上げることには、やはり大きなハードルを感じていました。しかし、ChatGPTに相談しながら進めることで、そのハードルを一気に乗り越えることができました。実際には多くの部分を生成AIの力に頼りながらではありますが、それでも最終的に一つのサイトを自分で作り上げることができたという経験は非常に大きなものでした。最初に作成したのは、「食事を選ぶ手間を減らしたい」という自身のアイデアから生まれた「ミールアイディア」というサイトです。今振り返ると改善点は多く、完成度としては決して高いものではありませんでしたが、最初の作品としては十分に価値のあるものだったと感じています。この経験により、「自分でも作れる」という実感を得ることができ、その後の開発は一気に加速していくことになりました。
実務への応用と成功体験
ChatGPTを使ってプログラムを組めるようになったことで、サイト制作だけでなく、いわゆる実務への応用も始めるようになりました。比較的簡単なところでは、ファイル名を一括で変更したり、必要なファイルをまとめて生成したりといった作業を、Pythonを使って自動化するようになりました。人手で行うと地味に手間のかかる作業を、一瞬で処理できるようになったことは大きな変化でした。
そしてここで、冒頭の病名チェッカーに話がつながってきます。実務の中で最初に大きく役立ったのが、簡易病名チェッカーの作成です。電子カルテからCSVデータを取得し、それを自分のパソコン上のデータベースに取り込み、病名の整合性をチェックする仕組みを構築しました。インフルエンザ、COVID-19の病名漏れを一瞬で検出できるようにするコードを作成し、現在も継続して使用しています。これは自分のプログラミング学習が、実際の業務に明確に役立った初めての経験でした。
それまでは、診療終了後にすべてのカルテを開き、一件ずつ病名を確認していました。しかし、インフルエンザ流行期など患者数が多い日は負担が大きく、場合によっては20分近くかかることもありました。また、疲労が蓄積している状況では、こうした単純作業はどれだけ注意していてもミスが生じやすく、精神的にも負担の大きい作業でした。
しかし、一度プログラムとして仕組み化してしまえば、処理は一瞬で完了します。自分で作成したシンプルなツールであるため動作も軽く、ワンコマンドの動作で、チェックは数秒で完了します。これまで数十分かけていた作業が、集中力というリソースも含めてほぼ不要となり、一瞬で完了するようになったときは、本当に大きな変化を実感しました。
いくつかのサイトを立ち上げる
その後、自分の中で思いついたアイデアを形にするため、いくつかのサイトを実験的に立ち上げるようになりました。中には、月額課金型のSaaSとしてリリースし、実際にサービスとして現在も運用しているものもあります。ここまでで一定の手応えを感じていましたが、開発は引き続きChatGPTと相談しながら進めており、開発速度はそれなりでした。少々伸び悩みを感じて始めていたのも事実です。ChatGPTは対話型のAIであるため、ローカルファイルを直接読み込んだり、大量のデータをそのまま扱ったりすることが難しく、やりたいことが増え、ロジックが複雑になるにつれて、どうしても生成AIとのやり取りで時間がかかってしまう場面もあり、限界を感じることもありました。
そうした中で、さらに次の段階へ進むきっかけとなる出来事が訪れます。
Claude Codeの出現
Claude Codeは、生成AIの中でも代表的なツールの一つで、いわゆるAIコーディングエージェントに分類されるものです。それまで私は導入していませんでしたが、従来のChatGPTである程度開発が成り立っていたため、特に必要性を感じていなかったというのが正直なところです。しかし、実際に導入してみると、開発環境は一気に変わりました。ChatGPTが対話型のAIであるのに対し、Claude Codeはローカルのファイルを直接読み込み、編集まで行うことができる点が大きな特徴です。この違いは非常に大きく、これまで手作業で行っていたファイル操作や修正作業を大幅に効率化することができました。
もちろん、すべてを自動で組み立ててくれるわけではありませんが、開発速度は飛躍的に向上しました。同時に特徴的だったのは、Claude Codeに出す指示を、ChatGPTと相談しながら設計するようになった点です。あらかじめ要件やロジックをChatGPTとともに整理し、練り上げた上でClaude Codeに指示を出すことで、精度の高いコードを非常に高速に生成できるようになりました。
いわば、「生成AIを使う」という段階から、これは「生成AIを使って、別の生成AIを効率的に動かすという」新たなフェーズに入った瞬間でした。ChatGPT+Claude Codeの掛け合わせにより、開発効率は体感で10倍以上に向上したと感じています。
Cursorの導入
さらに、従来のVS Codeに加えて、Cursorという生成AIがエディターに組み込まれた開発ツールを導入したことで、開発速度は一段と向上しました。
自分の中では、それぞれの生成AIの役割を以下のように整理しています。
ChatGPT → 設計(要件整理・プロンプト設計)
Cursor → 日常コーディング(実装補助・細かい修正)
Claude Code → コード実装(構築・ファイル編集)
このように目的に応じて複数の生成AIを使い分けることで、それぞれの強みを最大限に活かすことができ、開発環境は加速度的に効率化されていきました。
ちなみに、これらのツールを導入するきっかけの一つとなったのは、私がよく視聴している マコなり社長 がYouTube上で紹介していた内容でした。こうした情報にも非常に助けられたと感じています。
(※その後、現在はVS codeにClaude Code+Codexを組み込むことにより、Cursorの使用頻度は減っています。開発環境は日々刻々と変わっています。)
クリニック向けのツールを複数開発
開発環境が整ったことで、自分のクリニックで実際に使うツールを自作し、さらなる業務効率化に取り組むようになりました。現在主に活用しているのは、以下のようなツールです。
病名チェッカー
前述の病名チェッカーについても、継続的に改良を重ねています。現在では、CSVファイルの解凍も含めてワンクリックで処理できるようにし、電子カルテからCSVをダウンロードした後、ターミナル上の一回の操作でその日の病名チェックが一瞬で完了する仕組みとしています。
日計集計ツール
日次の集計を行い、利益率、患者数、月間予測、年間予測、検査キットの管理までを一元的に扱うツールを作成しました。さらに、ToDo管理機能や、マネーフォワードへの仕訳データをCSVインポートで一括登録できる機能も組み込まれています。これまでGoogleスプレッドシートやToDoリストなどを個別に運用していたものを一つに統合したことで、状況を一目で把握できるようになりました。また、CSVによる自動入力により、いわゆる「コピペ地獄」からも解放され、業務効率は大きく向上しました。
Word Palette
定型文入力ツールについては、従来から Clibor などの既存ソフトを使用していましたが、機能面で物足りなさを感じる場面があり、自作することにしました。それが「Word Palette」です。基本的な定型文のコピー&ペースト機能に加えて、プログラマブルキーボードのような機能を実装している点が特徴です。具体的には、文字入力だけでなく、タブやエンターといった操作も含めてワンクリックで実行できるようにしており、検査結果の入力などもワンクリックで完結できる仕組みとしています。また一時的なテキストを保持する付箋機能(macのスティッキーズに似た機能)も実装し、ワンクリックでも動作減らす努力を続け、実務で役立つツールにまで仕上げています。
自作キットにより生産性が大幅に向上
これらのツールはまだ発展途上ではありますが、導入後は締め作業にかかる時間が大幅に短縮され、1日あたり数十分の節約につながっています。年間、さらには生涯単位で考えると、相当な時間を削減できていると感じています。
また、単に作業時間が減るだけでなく、「人間が確認する」という認知的な負担も軽減されるため、その分のリソースを他の業務に振り向けることができ、さらなる生産性向上につながっています。
本サイトの立ち上げ
これまで、業務の効率化には継続して取り組んできたつもりです。特にプログラミングを応用して開業医としての業務を改善するという点については、さまざまな試みを行ってきました。その中で、「共有したい」と感じる内容も徐々に蓄積されてきました。一方で、もともとの本家サイトにこうした内容をそのまま掲載すると、専門的で尖った印象になり、ご覧いただく先生によっては少し距離を感じてしまう可能性もあるのではないかと考えるようになりました。そこで、あえて内容を切り分け、独立した形でまとめた方が分かりやすいのではないかと判断し、本サイトを立ち上げるに至りました。
本サイトでは、私が実際に行ってきた業務効率化の取り組みや、日常的に使用しているツールについてご紹介していきます。最大の特徴は、医師・クリニック経営者・エンジニアという複数の役割を担う現役の開業医である私自身が、すべての内容を実体験に基づいて執筆している点にあります。したがって、一般的なIT企業が提供するクリニック向けツールの紹介でもなければ、コンサルタントを介して設計されたものでもありません。実際の診療現場で業務を行っている立場から、本当に必要だと感じた機能に絞ってツールを作成しており、いわば血の通ったものだけをご紹介しているという点が特徴です。もちろん、出発点は素人としてのプログラミング学習であり、技術的に未熟な部分や改善の余地も多くあると認識しています。ただし、クリニックという限られた環境において「実際に役に立つかどうか」という観点で見れば、ご覧いただく先生にとっても一定の価値は提供できるのではないかと考えています。そのような背景から、本サイトでは実際に使っているからこそ分かる視点で、できる限り実用的な情報を発信していきたいと考えています。
現在に至る
少し長くなってしまいましたが、ここまでが、私がプログラミングに取り組むようになったきっかけと、どのようなものを開発してきたのか、そして現在どのような考えで取り組んでいるのかについての簡単なご紹介です。もともとは、数年前までプログラミングの知識は完全にゼロの状態でしたが、そこから自分でサイトを立ち上げ、簡単なツールを作成し、業務改善するところまで来ることができました。もちろん生成AIの力に大きく依存しているのが実際のところであり、厳密にはエンジニアと呼べるような状態ではないと思っています。ただ、それでも「素人が生成AIの力を使うことでここまでできる」という一つの例として、ご覧いただく先生方に、「これであれば自分にもできるかもしれない」と感じていただければと思い発信しています。
開業医の中には、もともとプログラミングにプロレベルで精通しており、生成AIが普及する以前から電子カルテの開発に関わっているような先生もいらっしゃいます。そのような方々と比べると、私のような人間が情報発信をすることに対して、一定の躊躇を感じるところも事実です。それでも専門家でなくても、現在の生成AIを活用することで、ここまで実務を変えることが可能であるということを示すことには、一つの意味があるのではないかと考えています。もちろん、本格的に開発をされている先生方や、プロのエンジニアから見れば、至らない点や改善すべき点も多くあるかと思います。その点については、看過いただいたうえでご覧いただければ幸いです。
本サイトがクリニック運営における、日々の業務を少しでも軽くするきっかけになれば幸いです。