【開発ログ】セラピストがローカルAIで「電子カルテ」を自作した話
こんにちは、もちスラです。
今回は、私が実際に開発している「もちスラカルテ」という電子カルテシステムについて、技術的な構成と開発の裏側をお話しします。
このシステムは 将来的に同業者の方々と共同利用できる形 を目指しており、知的財産として一部を公開しながら、コアな部分は有料コンテンツとして展開していく予定です。
なぜ作ったのか?
私は作業療法士(OT)とリラクゼーションセラピストとして働いていますが、施術後のカルテ記録が 手書きで30分以上 かかっていました。
- お客様の主訴や体の状態
- 五行思想に基づく体質分析
- 次回の施術プラン
これらを毎回丁寧に書くのは、正直しんどい…。
そこで思いついたのが、「スマホでポチポチ入力 → AIが自動で整形 → Obsidianで蓄積」 という仕組みです。
システム構成:3層アーキテクチャ
📱 Phase 1: PWA入力層(スマホアプリ)
技術スタック
- HTML/CSS/JavaScript
- LocalStorage
- PWA (Progressive Web App)
できること
- 施術中にスマホで「ポチポチ」タグ入力
- 主訴、体の状態、強さ(NRS)を記録
- データはスマホ内に保存され、後でPCに転送
こだわりポイント
- 「もちスラ」ブランドの柔らかいUI
- FAB(フローティングアクションボタン)で保存しやすく
- オフラインでも動作(PWA)
💻 Phase 2: Python処理エンジン(ローカルAI)
技術スタック
- Python 3.x
- Ollama (Llama3) - ローカルLLM
- Pydantic (データ検証)
できること
- スマホから受け取ったJSONデータを解析
- AIが「SOAP形式」でカルテを自動生成
- S (Subjective): お客様の訴え
- O (Objective): セラピストの観察
- A (Assessment): OT視点 × 五行思想での分析
- P (Plan): 次回の施術方針
- 五行タグ(木・火・土・金・水)を自動付与
なぜローカルAI?
- プライバシー重視: お客様の情報をクラウドに送らない
- コスト削減: ChatGPT APIは従量課金だが、ローカルなら無料
- カスタマイズ性: 自分専用のプロンプトで「もちスラ教授」を育成
📚 Phase 3: Obsidian Vault(ナレッジベース)
技術スタック
- Obsidian
- Dataview Plugin
- Pykakasi (日本語処理)
できること
- 顧客ごとに50音順でフォルダ自動整理
- 日次ログで「今日誰が来たか」を一覧化
- ダッシュボードで全体を俯瞰
- Callout(吹き出し)とHTMLバッジで視覚化
将来の展開
- Quartzを使ってWeb公開(一部のみ)
- 同業者向けに「テンプレート販売」も検討中
🔒 ブロックチェーン証明(おまけ)
カルテの改ざん防止のため、各ファイルに SHA256ハッシュ と タイムスタンプ を埋め込んでいます。
これにより、「いつ・誰が・何を記録したか」が証明可能になります。
開発で学んだこと
技術的な壁
- タイムゾーン問題: UTC と JST の変換ミスで日付がズレた
- データモデルの同期: PWA(JavaScript)と Python の型定義を合わせるのが大変
- 日本語処理: 顧客名を50音順に振り分けるため
pykakasiを導入
バグ修正の記録
app.jsが破損して全タグが消えた事件courseMenuフィールドが保存されていなかったvisitDateが未定義でエラー連発
今後の展開
技術面
- Quartz連携でWeb公開
- PWA → Obsidian の「逆輸入」機能
- 音声入力対応
- MOC(Map of Content)自動再構成
ビジネス面
- 無料版:システム構成の解説記事
- 有料版:AIプロンプトの詳細 + 運用ノウハウ
- ケーススタディ集の作成
- note/Brain での販売
まとめ
「もちスラカルテ」は、セラピストの知見をデジタル資産化 するプロジェクトです。
- スマホで簡単入力
- AIが自動でSOAP形式に整形
- Obsidianで蓄積・可視化
- ブロックチェーンで証明
このシステムは 将来的に同業者の方々と共有できる形 を目指しています。
技術的な詳細や、実際のプロンプト設計については、今後 有料コンテンツ として公開予定です。
ご興味のある方は、ぜひフォローしてお待ちください!
もちスラ
作業療法士 × リラクゼーションセラピスト
「養生」をテクノロジーで再定義する
