Skip to main content

自分でクリニック管理ソフトウェアを構築した理由

コルカタの診療所、紙の予約帳、Excel のファイル、そして「別のやり方はないのか」という問い。ClinicPlusPlus の背景にある正直な話。うまくいかなかったことも、まだ足りないことも書きました。

Software Products
自分でクリニック管理ソフトウェアを構築した理由

COVER // 自分でクリニック管理ソフトウェアを構築した理由

診療所を訪ねた日の夜は、本当はもう何もしたくない、という種類の夜でした。私は家にいて、目の前には、午前中に正の字を書き込んだノートがありました。マラさんは何回カルテを探したか。同じ電話番号を何回書き写したか。最初のメモが薬局で読めなかったせいで、先生が処方箋の一文を二度書いたのは何回か。

きちんと測っていない数字には慎重な性格ですし、これもきちんとは測っていません。三時間の観察と、鉛筆と、私の勘だけです。でも勘ははっきりしていました。その小さな診療所では、一日のうちに数時間が、コンピューターなら数秒で終わる作業に消えていました。探す、写す、突き合わせる、書き直す。毎日、数時間。本来は別の仕事のためにいる人の時間で、です。

なぜ、買って済ませなかったのか

それが私の最初の反応で、それが正しい反応です。二十年で学んだのは、自分でソフトを作るのは、ほとんどの場合、問題に対する最も高い答えだということです。だから、まず何があるかを見ました。診療所向けソフトの世界は、私が当時見た限りでは、大きく三種類に分かれます。

一つ目は大きすぎるもの。情報システム部門を持つ病院向けで、研修や数か月がかりの導入プロジェクトがついてきます。医師三人と受付一人の診療所には、パンを買いに行くのにトラックを買うようなものです。

二つ目は古すぎるもの。かつては良かったのでしょうが、画面は十五年誰も触っていないように見え、誰がまだ保守しているのだろうと思ってしまうソフトです。

三つ目は、良いけれど別の世界のもの。最近のクラウド製品はたいてい素晴らしいのですが、この診療所とは別の市場のために作られています。通貨も、税の書式も、インターネット事情も違います。これは Cliniko との比較の記事で詳しく書いたので、ここでは繰り返しません。ただ、これらの製品が悪いから外したのではありません。別の部屋のために作られていたから外したのです。

自分に課したルール

最初の一行を書く前に、一つのルールを書き留めました。この診療所で毎日使われるものだけを作る。見栄えがいいだけのものは作らない。作れるからという理由だけで作るものも作らない。

当たり前に聞こえます。でも実際には、私が知る限り最も難しい規律です。開発者は、いつもアイデアが浮かぶからです。きれいなグラフのダッシュボード。リマインダー機能。統計。そういうアイデアを全部「あとで」と名付けたリストに入れ、毎日使う部分が動くまで手を付けませんでした。

私の正の字によれば、毎日のことは五つでした。

最初に作ったもの

患者。 マラさんが電話でどのみち聞いていることを入れたフォームです。氏名、生年月日、性別、電話番号、住所。それに、先生が処方する前に知りたいこと。血液型、アレルギー、既往歴。アレルギーを独立した項目にするか、既往歴の一部にするかは、長く迷いました。二十行の文章の中に埋もれてほしくなかったので、独立した項目にしました。

予約。 予約は一人の患者と一人の医師に属し、日付、時刻、種類(たとえば診察や再診)、状態を持ちます。ホーム画面にはその日の予約の一覧が出ます。ありふれているようですが、マラさんが毎朝予約帳から書き写していたのが、まさにこの一覧でした。

診察。 ここが中心です。先生は、患者の訴えと症状、診断、処方、検査を勧めるかどうか、そしていつ再来するかを記入します。すべて予約と患者に結びついています。

検査。 検査の依頼、状態、結果。それだけです。でも、診療所のメッセージアプリに届いていた写真の山の代わりになります。

請求。 請求書には、診察、薬、検査、その他の項目と、割引、合計、支払済み金額、支払い方法、状態があります。加えて、在庫と最低在庫と使用期限を持つ簡単な薬局リストもあります。診療所が一部の薬を自分で出しているからです。

以上です。奇跡はありません。でも、普通の日に実際に起きていることです。

ClinicPlusPlus のホーム画面。その日の予約と患者の概要が表示されます
ClinicPlusPlus のホーム画面。その日の予約と患者の概要が表示されます

なぜデスクトップアプリなのか

開発者なら誰でも聞いてきます。なぜ Web アプリにしないのか。今ならそれが自然な道でしょう。答えは、私ではなく診療所の側にあります。

Web アプリにはサーバーとインターネット接続が必要です。サーバーを運用する人は、保守し、バックアップし、更新しなければなりません。小さな診療所には、そのための人がいません。借りる場合は、患者のデータを手放すことになり、先生が望まなかったのはまさにそれでした。そして、インターネットが落ちれば、すべてが止まります。

そこで、インターネットなしで動く Windows プログラムにしました。データは診療所のパソコンの一つの SQLite ファイルに入っています。中身は VB.NET で、画面は Windows のウィンドウの中の Web 表示です。そのほうが早くきれいな見た目に仕上がるからです。診療所にとっては、「プログラムを開いて、仕事をして、ファイルをコピーする」というだけのことです。

これには代償があり、隠すつもりはありません。ローカルのプログラムは、バックアップの責任が診療所にあるということです。複数のパソコンが同時に同じデータを使うのは、クラウドよりも難しくなります。更新は誰かが入れなければなりません。照明がちらつき、回線が消えても診療所が仕事を続けられる利点と、これらの不利な点を天秤にかけて、デスクトップアプリを選びました。別の診療所なら、計算は違う結果になるかもしれません。

驚いたこと

最大の難題は技術的なものだと思っていました。ほとんどそうではありませんでした。最大の驚きは、マラさんと先生から来ました。

マラさんは、予約を作るときに、その患者が前に来たことがあるかどうかがすぐ見えるようにしたがりました。私は想定していませんでした。小さな願いでしたが、受話器を肩と耳に挟んで仕事をしている人が何を見ているのかを教えてくれました。リストに入れました。

先生は、次回の再診日を、別の予約画面ではなく、診察の中で直接決めたがりました。「どのみち書く場所に書けば、忘れないから」と先生は言いました。だから、診察の画面にはそのための項目があります。

一番印象に残ったのは、二人とも、何が気に入ったかをほとんど言わなかったことです。何が邪魔かを教えてくれました。それが最も価値のある反応で、私は、お世辞ではなくため息に注意を払うことを学びました。

疑った数週間

一か月たったころ、すべて捨てようかと真剣に考えた時期がありました。技術的にできなかったからではありません。一番正直な問いを自分に向けたからです。そもそも、診療所向けソフトをもう一つ、誰が必要としているのか。

何十とあります。とても良いものもあります。二週間、すでに完全に丸い車輪をもう一度発明している気分でした。夜、コードを前にして、「先生にサブスクを勧めればよかったのに、それで終わりだったのに」と思いました。

結局、私を引き止めたのは大きな目標ではなく、小さくて少しも格好よくない観察でした。診療所に寄るたびに、予約帳はまだ机の上にあったのですが、マラさんが先に画面を見る回数が増えていました。私が促したからではなく、画面のほうが早かったからです。この一文は覚えています。人は良い論拠では乗り換えない。何かが楽になったときに乗り換える。

あえて作らなかったもの

入っていないもののリストは、入っているもののリストより、製品について多くを語ります。私のリストは次のとおりです。

診断を提案する人工知能は入れていません。よく求められますが、一人の開発者が作り、臨床的に検証できないプログラムでは、悪い考えだと思います。そこでの間違いは、見た目の欠点では済みません。

薬の相互作用を確認する薬剤データベースも入れていません。診察の処方テキストは、ただのテキスト欄です。先生が処方するものを書きます。プログラムは一緒に考えてくれませんし、そう見せるつもりもありません。検証済みの薬剤データベースは、専門家と何年もかけるプロジェクトで、ついでに足せるものではありません。

大きなシステムのような、役割と権限を持つユーザーアカウントも作っていません。互いをよく知る医師三人と受付一人にとって、それは最も急ぎの問題ではありませんでした。もっと大きな診療所なら問題になり、そのときは私が追いつかなければなりません。

保険会社との連携も作っていません。この診療所では、多くの患者が自費で払っていて、連携ごとに、別の国のような別のルールがあるからです。

プログラムのある午前中

八時半だと想像してください。マラさんはパソコンの電源を入れ、プログラムを開きます。ホーム画面には、その日の予約が時間順に並んでいます。最初は再診、二番目は新しい患者です。

新しい患者が入ってきます。マラさんは登録します。氏名、生年月日、電話番号、尋ねられて本人が答えたアレルギーの一文。一分で終わります。先生は予約を開き、訴えを記入し、診断を書き、処方を打ち込み、再診日を決めます。血液検査をしたければ、検査依頼を作ります。

最後に、患者はまたマラさんのところに座ります。彼女は請求書を出します。診察、薬、検査、場合によっては割引、現金かそれ以外での支払い。終わりです。

どれも派手ではありません。それがポイントです。開発者としては、時々誰かに「すごい」と言ってほしくなります。でもここでそれは、悪い兆候でしょう。ソフトが良ければ、誰も何も言いません。ただそこにあって、午前中が少し早く過ぎていくのです。

これが私にもたらした代償

時間と労力については、正直に書きたいと思います。多くの開発者がここを飾ると思うからです。

こういうプログラムは、数回の週末でできるものではありません。見せられる最初のバージョンは数日でできます。日々の仕事で人が頼れるバージョンには数か月かかり、何より、診療所に何度も通い、観察し、賢いと思っていたものを捨てる忍耐が必要です。私はプログラミングよりも観察に多くの時間を使いましたし、もう一度やっても同じようにするでしょう。

それに、責任があります。診療所が予約とカルテをプログラムに預けるとき、そこでの間違いはもう遊びではありません。だから、約束には慎重になることを学び、このような文章では、できないことを必ず書く習慣を身につけました。

それから、ほとんど誰も話さないことがあります。このようなプロジェクトの孤独です。一人で作っていると、一週間を費やす前に「それは良くない」と言ってくれる人がいません。それを、単純なルールで補うことを学びました。何か新しいものを作る前に、三行でマラさんか先生に説明する。何のためのものか伝わらなければ、作りません。

まだ足りないもの、そして隠さない理由

ClinicPlusPlus は完成していません。謙遜ではなく、事実だから書いています。

いくつかの画面はまだ試作です。ホームとレポートは、まだすべてが実際のデータにつながっているわけではありません。自動バックアップはなく、ファイルを手でコピーするだけです。インドの税法に沿った GST 対応の請求書は、私のリストにあって、まだ作っていません。患者がオンラインで予約することはできず、SMS のリマインダーもありません。予約の二重登録を自動で防ぐ仕組みもまだなく、それについては別の記事で書きます。

完成したものが必要な方は、私のプログラムを待たずに、成熟した製品を見てください。本気でそう思っています。

この経験から持ち帰ること

振り返ると、この話全体で最も重要な一文は、技術的なものではありませんでした。ノートの夜に自分に向けた問いです。私は、誰かが本当に抱えている問題を解いているのか、それとも、作れるから作っているのか。

ClinicPlusPlus が最後に大きな製品になるかどうかは、わかりません。わかっているのは、自分の目で見た問題から始まったこと、そして中にあるすべての機能は、誰かが毎日必要としているから入っている、ということです。それは良い始まりです。終わりではないとしても。

診療所を運営していて、この話のどこかに自分を見つけたなら、メールをください。プログラムを気に入ってくれるかどうかより、あなたの日常で何が邪魔になっているのかを知りたいのです。

この記事は、公開時点での開発状況を説明しています。

Let's Talk

Have a Project in Mind?

Whether it's a software challenge, an AI integration, or a course enquiry — I'm always open to a real conversation.

hello@debasisbhattacharjee.com · +91 8777088548 · Mon–Fri, 9AM–6PM IST