プログラミング経験ゼロの開業医が35個の業務ツールを作った話|バイブコーディング実践記
前回(GPTからClaude Codeへ──バイブコーディングという選択)では、GPTからClaude Codeに移行した経緯と、バイブコーディングという手法について書きました。
今回は、実際に何を作ったのかを書きます。
36個の内訳
数だけ並べても意味がないので、カテゴリで分けます。
文書生成(8種)
紹介状、返書、普通診断書、外国人診断書、インフル・コロナ診断書、療養計画書、雇用時健診書+採血レポート、2次検診提案。
カルテを開いた状態でブックマークレットを1クリック。
患者の氏名、年齢、SOAP、処方、傷病名が各ツールに自動で入る。
そこにAIが本文を下書きして、全フィールドを編集できる状態で表示する。
あとは確認して印刷。
コピペは一切していません。手入力もしていません。
診療補助(14種)
漢方サジェスション、漢方ビジュアライザー、算定チェック、音声SOAP、看護師ボイスSOA、レセプト病名推測、感染症検査メーカー、デュアルAI比較、SOAP比較、Whisperログ、向精神薬ガイド、カメラVision、BM Launcherなど。
このあたりは診察しながら裏で動いているものが多い。
漢方サジェスションは、SOAPと処方情報を渡すと「証」に基づいた漢方候補を返してくれる。
音声SOAPは、診察中の会話をWhisperで文字起こしして、Bedrockが S/O/A/P に分離する。
患者説明(4種)
感染性胃腸炎説明、FD・IBS説明、お薬カードデッキ、不安・不眠のお薬ガイド。
患者さんに見せながら説明するための資料。
お薬カードデッキは処方薬をトレカ風のカードUIで表示するもので、薬の説明がわかりやすいと好評。
管理・ツール(10種)
ダッシュボード、シフト構成、看護師ボード、患者履歴DB、プチドック計算機、Wakumy連携、紹介資料、システム構成図など。
全部ブラウザの中で動いている
ここが伝わりにくいかもしれない。
36個のツールは、全部ブラウザで動いています。
院内のPC1台にサーバーを立てて、localhost(自分自身)でアクセスしている。
アプリのインストールはしていない。
クラウドに患者データを保存していない。
ブラウザのタブを開くだけで使える。
技術構成はこうです。
- AI処理: AWS Bedrock Claude(東京リージョン、ZDR=データ保持ゼロ)
- 音声認識: faster-whisper(院内GPU処理、外部送信なし)
- サーバー: Python 1ファイル(pp_proxy.py)でlocalhost稼働
- カルテ連携: ブックマークレットでsessionStorageにデータを一時保持
3省2ガイドラインへの適合を意識した設計です。
AWS Bedrockは入力データを保持せず、モデル学習にも使用しない契約(ZDR)。
音声データは院内のGPUで処理して外には出ない。
なぜ36個も必要だったのか
最初から36個作ろうと思っていたわけではありません。
紹介状を書くのが面倒だった。だから作った。
健診書を手書きするのが面倒だった。だから作った。
返書が溜まっていた。だから作った。
「めんどくさい」が1つ解決すると、隣の「めんどくさい」が目につく。
そのループを1ヶ月半続けたら、気づいたら36個になっていた。
外注したわけではない。
仕様書を書いたわけでもない。
「こういうの作って」とClaude Codeに伝えて、出てきたものを診察の合間に確認して、「ここ直して」と言う。
これの繰り返しです。
できないこともある
正直に書いておきます。
36個のうち、毎日安定して使えているのは7〜8割です。
残りの2割は、まだ調整中だったり、特定の条件でバグが出たりする。
レセプト病名AIは正答率が不安定で、まだ完全には信頼できない。
音声SOAPも、短い会話だと精度が落ちる。
バイブコーディングで速く作れる代わりに、品質の安定には時間がかかる。
AIが書いたコードの中身を僕は読めないので、壊れたときの対処は再びAIに頼ることになる。
それでも、手作業に戻ろうとは思わない。
壊れたら直す。それだけです。
次に書くこと
ここまでが全体像です。
次回以降は、個別のツールについてもう少し具体的に書いていきます。
紹介状がどう動くのか。採血レポートがどう生成されるのか。
音声SOAPがなぜ年間20万のサービスより良くなったのか。
全部、実際に毎日使っているものの話です。
ひろつ内科クリニック
開業1年3ヶ月
自作ツール:36種
プログラミング経験:なし
使用AI:Claude Code / AWS Bedrock Claude (ZDR)