01 / 05
課題
独立系クリニックのグループは、製品の進化が明らかに止まったレガシーな電子カルテベンダーに、年間6桁ドル規模のライセンス料を払い続けることをやめたいと考えていました。必要だったのは、予約、遠隔医療、処方箋、記録、支払いを備えた患者向けのモダンなポータルで、すべてのクリニックをひとつの技術基盤で運用しつつ、患者データはテナントごとに明確に分離するものでした。さらに、HIPAAに照らして監査できる必要がありました。
これまでの開発の試みは、すべてテナント管理の問題でつまずいていました。行単位のフィルタリングによる単一データベースは、医療データには危険すぎると感じられました。完全なマルチデータベースは、専任のDBAを雇いたくないチームにとって運用上の負担が大きすぎると感じられました。誰もが意見を持っていましたが、実際にリリースした人はいませんでした。
02 / 05
当社のアプローチ
ハイブリッド構成を選びました。プラットフォーム共通のデータベース(認証、請求、オーケストレーション)と、クリニックごとの専用テナントデータベース(患者記録、予約、メモ)です。ルーティングはTenancy for Laravelが担い、すべてのリクエストでミドルウェアの早い段階でテナントを特定し、患者データに触れるクエリが実行される前にデータベース接続を切り替えます。バックアップ、鍵のローテーション、監査ログはテナントごとに実行されます。
遠隔医療にはTwilio Videoを連携しました。処方箋については、受け入れ時にStripe Identityで処方する医師の本人確認を行い、署名済みの処方箋ドキュメントを、オブジェクトごとにKMSのエンベロープ暗号化を施したテナント別の暗号化S3バケットに保存しました。
03 / 05
主な判断
すべての書き込みはイベントバスを経由させました。設計の巧みさを示すためではなく、HIPAAの監査証跡がそれを求めているからです。患者記録の変更、処方箋の発行、予約の作成、ログインの試行のすべてを、署名付きのハッシュチェーンを持つ改ざん不可能な監査ログに書き込みます。コンプライアンス担当者は、エンジニアの手を借りずに確認できます。
スタック全体を、医療系のトラフィックパターンに合わせて調整したWAFルールを持つ単一のCloudflareゾーンの背後で運用しました。顧客の地域外に置かれるインフラはありません。保存データはすべてAES-256で暗号化され、鍵は厳格なローテーションのもとKMSで管理されています。
独自の動画基盤は作らないと決めました。Twilio Videoは1分あたりの費用が高いものの、監査可能で、監視され、サポートも受けられます。私たちの仕事は患者の治療成果を高めることであり、動画インフラの会社になることではありませんでした。
04 / 05
変化したこと
公開から6か月以内に24のクリニックが導入しました。稼働率は99.98%です(直近の四半期時点)。第三者によるレビューで阻害要因となる指摘はゼロとなり、コンプライアンス部門はHIPAA対応の準備が整ったことを承認しました。予約のリマインダーとワンタップでの日程変更が機能するようになったため、患者の無断キャンセル率は18%から9%に低下しました。
05 / 05
今後の展開
現在、ビデオ診療の文字起こしからSOAP形式の診療記録を自動で下書きする、AI支援の診療記録作成機能を試験運用しています。最終版には必ず医師が署名し、モデルは患者1人あたり4〜6分の時間を節約するだけです。先行導入したクリニックでは、医師の時間を1日40分以上取り戻しています。