1. はじめに:Hooksで薬局DXの業務フロー連携を実装する
第1回ピラー記事から第6回まで、本シリーズではポリファーマシー対策の3つのAIエージェント(検出・提案・フォロー)と、各種算定項目を体系的に解説してきました。第4回ではClaude CodeのSkills機能を技術的に深掘りし、本シリーズ第7回では4機能のもう1つ「Hooks」を取り上げます。
Hooksは、Claude Codeが特定のライフサイクルイベント(ツール実行前・実行後等)でシェルスクリプトやHTTPエンドポイントを呼び出す仕組みです。薬局DXでは、検出AI・提案AI・フォローAIの各処理を業務フローに連携させ、個人情報の事前チェックや薬剤師通知などのトリガー処理を実装する基盤となります。
2. Claude Code Hooksの基本構造(公式仕様)
Claude Code Hooksは、ツール実行前後、プロンプト送信時、セッション開始・終了時、通知発生時など、複数のライフサイクルイベントに対応しています。設定は .claude/settings.json(プロジェクト用)または ~/.claude/settings.json(個人用)に記述します。本記事では、薬局DXで活用しやすい主要イベントを中心に整理します。
- PreToolUse:ツール実行前のフック。バリデーションや危険な操作のブロックに使う。
permissionDecision: "deny"を返すとツール実行を停止できる - PostToolUse:ツール実行後のフック。整形、ログ記録、薬剤師通知などに使う。実行済みの操作を取り消すことはできない
- UserPromptSubmit:ユーザーがプロンプトを送信した時点のフック
- SessionStart / SessionEnd:Claude Codeセッション開始時・終了時のフック
- Stop / SubagentStop:Claude Codeが応答を停止した時点のフック
- Notification:通知発生時のフック
ハンドラーは「シェルコマンド」「HTTPエンドポイント」「LLMプロンプト」など複数の種類が用意されており、薬局DXではまずcommand型・http型から検討するのが現実的です。Exit code 0 で正常終了、Exit code 2 でブロッキングエラー(標準エラー出力がClaudeに返される)として扱われます。
さらに、JSONを返すことでイベントに応じた構造化制御が可能です。例えば PreToolUse では hookSpecificOutput.permissionDecision(allow/deny/ask)によってツール実行を許可・拒否でき、必要に応じて updatedInput(ツールパラメータの修正)や additionalContext(追加情報)を返すこともできます。ただし、PostToolUse や Stop など他のイベントでは出力形式が異なるため、実装時は公式リファレンスの各イベント仕様を確認する必要があります。
3. 薬局DXでのHooks活用シナリオ4選
Hooksの仕組みは、薬局DXの以下のようなシナリオで活用できます。
- (1) 個人情報送信の事前チェック:PreToolUseで外部AIサービスへの送信前に、患者の直接識別子(氏名・生年月日・住所等)が含まれていないかをチェック。検出されたら送信をブロック
- (2) 検出AI結果の薬剤師通知:PostToolUseで検出AIの判定結果が出たタイミングで、薬剤師のSlackチャンネルやメールに介入候補リストを通知
- (3) 異常検知時のエスカレーション:フォローAIで患者から異常応答が検知された際、PostToolUseで薬剤師の管理画面にアラートを送信
- (4) スケジュール起動との連携:朝6時の自動スクリーニングなど時刻指定の処理は、OS cronが Claude Code コマンドを起動し、その実行内のフックでログ記録や通知を行う
注目すべきは、Claude Code Hooks自体は「Claude Codeセッション内の処理」に対応する仕組みであり、cron的なスケジュール起動は別途OS cron等の外部スケジューラーで実現する点です。Hooksとスケジューラーを組み合わせることで、薬局の業務フロー全体を連携できます。
4. PreToolUseで個人情報送信を事前チェックする実装例
以下は、Claude Codeが外部AIへ送信する前に、入力データに直接識別子(氏名・生年月日等)が含まれていないかをチェックするフックの実装例です。検出された場合は exit 2 でブロックします。
{
"hooks": {
"PreToolUse": [
{
"matcher": "Bash",
"hooks": [
{
"type": "command",
"command": "python scripts/check_pii.py"
}
]
}
]
}
}
check_pii.py は入力データを受け取り、氏名・生年月日・住所等の直接識別子が含まれていれば exit 2 でブロックする想定。※ matcherの
"Bash" は説明用の例示であり、実運用では外部AIサービス送信用のカスタムツールやWebFetch等、対象を絞ったmatcherを使用します。※ 最終的なPII検出ロジックの妥当性は、薬局の運営会社・法務担当・情報セキュリティ責任者が確認します。
5. PostToolUseで薬剤師通知を実装する例
検出AI(第2回)の判定結果が出たタイミングで、薬剤師のSlackチャンネルに介入候補リストを通知する実装例です。PostToolUseは、ツール実行が成功した後に呼び出されるため、ログ記録や通知に適しています。失敗時の処理は PostToolUseFailure などのイベントを検討します。
{
"hooks": {
"PostToolUse": [
{
"matcher": "Write",
"hooks": [
{
"type": "command",
"command": "python scripts/notify_pharmacist.py"
}
]
}
]
}
}
notify_pharmacist.py は検出AIの判定結果ファイルを読み取り、薬剤師のSlack等に通知する想定。※ matcherの
"Write" は説明用の例示であり、実運用では検出AIの結果出力に特化したカスタムツール等、対象を絞ったmatcherを使用します。※ 通知内容は仮名化IDで構成し、実名・診断名等は含めません。
6. OS cronとClaude Code Hooksの組み合わせ
「朝6時に自動スクリーニング」のような時刻指定の処理は、Claude Code Hooksだけでは実現できません。OSのcron(Linux/Mac)やタスクスケジューラー(Windows)が指定時刻にClaude Codeコマンドを起動し、そのセッション内でHooksが付随処理(ログ記録・通知等)を実行する組み合わせが基本です。
例えば、毎朝6時に検出AIを起動するcron設定と、その実行に対するPostToolUseフックを組み合わせることで「朝6時にスクリーニング→結果が出たら薬剤師にSlack通知」という業務フローが構築できます。スケジューラーはOSの責務、フックはClaude Code内のイベント連携と役割を分担することで、安定した運用が可能になります。
7. Exit codeと制御フロー
Hooksの戻り値は、ツール実行の制御に直結します。Exit code 0で正常終了、Exit code 2でブロッキングエラーとなり、標準エラー出力がClaudeに返されて以降のツール実行が停止します。それ以外のExit codeは非ブロッキングエラーとして扱われ、verboseモード時に表示されます。
JSONを標準出力に返すことで、より細かい制御が可能です。例えば PreToolUse では hookSpecificOutput.permissionDecision に "allow"、"deny"、"ask" を返すことで、ツール実行を許可・ブロック・薬剤師確認に振り分けられます。updatedInput でツールパラメータを修正したり、additionalContext で追加情報をClaudeに渡すこともできます。なお、PostToolUse や Stop など他のイベントでは出力形式が異なるため、実装時は公式リファレンスの各イベント仕様を確認してください。これらの制御は、薬局DXにおいては「個人情報を含む処理は薬剤師確認後のみ許可」のような運用ルールに対応できます。
8. Hooks運用上の個人情報保護とセキュリティ
Hooksを薬局で運用する際には、以下の点に留意が必要です。Hooksはシェルコマンドを実行できるため、不適切な設定は薬局のローカルシステムに影響を与える可能性があります。設定ファイルは薬局運営会社・情報セキュリティ責任者の承認のもとで運用してください。
個人情報保護の観点では、PreToolUseで外部AIサービスへの送信前に必ず直接識別子(氏名・生年月日・住所等)の有無を確認するフックを設置し、検出された場合はブロックする設計が基本です。Hooksの実行ログにも個人情報が記録されないよう、ログ出力内容を最小化し、保存期間と削除ルールを薬局内で定める必要があります。再識別リスクが残る可能性があるため、改正個人情報保護法、医療情報システムの安全管理に関するガイドライン、外部サービスの利用規約・データ処理契約を踏まえて、自薬局の運営会社・法務担当・情報セキュリティ責任者と確認した上で運用してください。
9. まとめ:Hooks×薬局DXで業務フローを連携する
Claude Code Hooksは、Claude Codeのライフサイクルイベントに対応してシェルコマンドやHTTPエンドポイントを呼び出す仕組みであり、薬局DXでは個人情報送信の事前チェック、検出AI結果の薬剤師通知、異常検知時のエスカレーションといった業務フロー連携の基盤となります。OS cronと組み合わせることで、朝6時の自動スクリーニングのような時刻指定処理にも対応できます。
本シリーズで整理しているClaude Code活用の主要構成要素(CLAUDE.md・Skills・Hooks・Memory)のうち、Skills(第4回)とHooks(本記事)が完了しました。次回以降は、CLAUDE.mdとMemoryの特化記事として、薬剤師の暗黙知をテキスト化する知識マネジメント、主治医ごとの提案最適化を解説する予定です。最終的な薬学的判断は薬剤師が行うという原則は、すべての構成要素で共通します。
参考文献・リンク
- Claude Code Hooks公式ドキュメント:https://code.claude.com/docs/en/hooks-guide
- 厚生労働省「令和8年度診療報酬改定の概要【調剤】」:https://www.mhlw.go.jp/content/12400000/001684593.pdf
- 日本薬剤師会「調剤報酬点数表(令和8年6月1日施行)」:https://www.nichiyaku.or.jp/files/co/pharmacy-info/2026/20260402_01.pdf
- 第1回ピラー記事:令和8年度調剤報酬改定×AI|薬局DXとポリファーマシー対策の完全ガイド
- 第2回サテライト:服用薬剤調整支援料2を狙うClaude Code薬局DX|4週間PoC実装ガイド
- 第3回サテライト:服用薬剤調整支援料1×Claude Code|125点の減薬達成を支援する薬局DX
- 第4回サテライト:Claude Code Skills×薬局DX|STOPP/START構造化ガイド
- 第5回サテライト:医師宛トレーシングレポート×Claude Code|薬学的有害事象等防止加算を狙う実装
- 第6回サテライト:LINEフォローAI×Claude Code|かかりつけ薬剤師フォローアップ加算50点
免責事項
本記事は、Claude Code Hooksを活用した薬局DXに関する情報提供を目的として作成されたものです。記事に示すHooksの実装例はあくまで参考であり、実運用ではClaude Code公式ドキュメントの最新仕様、各薬局の運営方針、最新の通知・疑義解釈に基づき調整が必要です。Hooksはシェルコマンドを実行できるため、不適切な設定は薬局のローカルシステムに影響を与える可能性があります。設定ファイルは薬局運営会社・情報セキュリティ責任者の承認のもとで運用してください。記事に記載されたAIツールの使用結果や、それに基づく経営判断・臨床判断について、筆者および本ブログは一切の責任を負わないものとします。
本記事は生成AIを活用して作成しています。内容については十分に精査しておりますが、誤りが含まれる可能性があります。お気づきの点がございましたら、コメントにてご指摘いただけますと幸いです。
Amazonでこの関連書籍「月刊薬事 2026年5月号(Vol.68 No.7 特集:これならわかる診療報酬 新設項目から実務対応まで徹底解説!)」を見るPR:本記事にはアフィリエイト広告を含みます。
薬歴入力の負担を減らすAIボイスレコーダーという選択肢
ポリファーマシー対策や対人業務を強化するうえで、薬局現場の課題となるのが 服薬指導後の記録作業である。 患者さんから丁寧に情報を聞き取るほど、その後の薬歴入力やメモ整理には時間がかかる。
こうした記録業務の負担軽減に役立つ可能性があるのが、音声を記録し、AIによる文字起こしや要約に活用できる AIボイスレコーダーである。
💡 対人業務の時間を生み出すおすすめAIガジェット
会議記録、薬局内カンファレンス、申し送り、研修記録などを効率化したい場合、AIボイスレコーダーは検討に値するDXツールである。
世界初ChatGPT-4連携AIボイスレコーダー PLAUD NOTEを詳しく見る
注意: 患者さんの服薬指導や相談内容を録音・文字起こしする場合は、必ず事前に利用目的、保存方法、利用範囲を説明し、同意を得たうえで運用する必要がある。 また、患者情報や薬歴に関わる情報を取り扱う場合は、個人情報保護、医療情報システムの安全管理、所属組織の規程に従うことが前提である。

