短く言うと: CDS Hooks はHL7の標準規格で、電子カルテシステム(EHR)が、医師のワークフローにおける特定のタイミング(フック)で外部の臨床意思決定支援サービスを呼び出すことができます。例えば、患者さんのカルテを開いたとき(patient-view)、処方を選択したとき(order-select)、処方に署名したとき(order-sign)、診察を開始または終了したときなどです。EHRはコンテキスト情報と、オプションで事前に取得したFHIRデータをサービスに送信します。サービスは数秒以内に、短い情報、警告、提案、そしてSMART on FHIRアプリを起動できるリンクを含むカードで応答します。医師はEHR内に留まり、インテリジェンスはEHRの外に存在します。
3つのステップ
CDS Hooksは3つのステップで機能します。まず、ディスカバリー:EHRはGET /cds-servicesを取得し、各サービスがどのフックに応答するか、そしてどのFHIRデータを事前取得したいかを学習します。次に、フックコール:オーダーサインなどのワークフローイベントで、EHRはコンテキストと事前取得されたリソースをサービスにPOSTします。最後に、レスポンス:サービスはEHRが表示するカードを返します。
1. ディスカバリ(発見)。 EHRは GET https://cds.example.org/cds-services を取得し、応答するフックと、事前に取得したいFHIRクエリのリストを持つ各サービスのリストを受け取ります。
{
"services": [{
"id": "renal-dosing",
"hook": "order-sign",
"title": "Renal dosing check",
"description": "Flags drug orders whose dose needs review against the latest eGFR.",
"prefetch": {
"patient": "Patient/{{context.patientId}}",
"egfr": "Observation?patient={{context.patientId}}&code=http://loinc.org|98979-8&_sort=-date&_count=1"
}
}]
}
2. フック呼び出し。 医師が処方に署名すると、EHRは /cds-services/renal-dosing にPOSTします。
{
"hookInstance": "d1577c69-dfbe-44ad-ba6d-3e05e953b2ea",
"hook": "order-sign",
"fhirServer": "https://ehr.example.org/fhir",
"fhirAuthorization": {"access_token": "…", "token_type": "Bearer", "expires_in": 300, "scope": "patient/*.read", "subject": "renal-dosing"},
"context": {
"userId": "Practitioner/42",
"patientId": "123",
"draftOrders": {"resourceType": "Bundle", "entry": [{"resource": {"resourceType": "MedicationRequest", "id": "draft-1", "status": "draft"}}]}
},
"prefetch": {
"patient": {"resourceType": "Patient", "id": "123"},
"egfr": {"resourceType": "Bundle", "type": "searchset", "entry": [{"resource": {"resourceType": "Observation", "id": "obs-9", "status": "final", "code": {"coding": [{"system": "http://loinc.org", "code": "98979-8"}]}, "valueQuantity": {"value": 38, "unit": "mL/min/1.73m2"}}}]}
}
}
サービスが必要とする情報が事前に取得されていなかった場合、fhirAuthorization に含まれる短期有効なトークンを使用して、EHRのFHIRサーバーに直接クエリを実行できます。
3. レスポンス。 カード、そしてバージョン2.0ではシステムアクションも含まれます。
{
"cards": [{
"uuid": "9a1d2f3e-…",
"summary": "eGFR 38: dose review suggested",
"indicator": "warning",
"detail": "The most recent eGFR (38 mL/min/1.73m², 2026-03-10) is below the threshold in the local renal dosing guidance for this drug.",
"source": {"label": "Hospital renal dosing guidance", "url": "https://intranet.example.org/renal"},
"suggestions": [{"label": "Open renal dosing table", "uuid": "…", "actions": []}],
"links": [{"label": "Dosing calculator", "url": "https://apps.example.org/renal/launch", "type": "smart"}]
}]
}
summary は140文字に制限されます。indicator は info、warning、または critical です。source は、医師が誰からの情報かを知ることができるように必須です。suggestions は、医師がワンクリックで受け入れられる具体的な変更(下書きリソースの作成、更新、削除)を提案できます。links の smart タイプは、コンテキスト内でSMARTアプリを開きます。EHRは独自のスタイルでカードを表示します。サービスはEHR内で独自のUIを描画することはありません。
バージョン2.0の追加機能
2022年に公開されたCDS Hooksバージョン2.0では、EHRがカードが受け入れられたか、理由とともに上書きされたか、無視されたかを報告するためのフィードバックエンドポイントが追加されました。また、低リスクのハウスキーピングのためにEHRが確認なしで適用するシステムアクション、fhirAuthorization.subjectフィールド、および提案のためのより明確なselectionBehaviorルール(at-most-oneまたはany)が追加されました。
2022年に公開されました。EHRがカードが受け入れられたか、却下されたか(理由とともに)、または無視されたかを報告するためのフィードバックエンドポイント(POST /cds-services/{id}/feedback)。低リスクのハウスキーピング(コード化された理由の追加など)を目的とした、EHRが自動的に適用する変更であるsystemActions。fhirAuthorization.subject。そして、提案に対する selectionBehavior(at-most-one または any)のより明確なルール。
サービスとは何か、そして何でないか
CDS Hooksサービスは、ワークフローコンテキストを読み取り、カードとして情報を返すソフトウェアです。自動的に医療機器になるわけではありません。EUおよび米国で医療機器規則が適用されるかどうかは、コンテンツによって異なります。臨床医に検査値が存在することを思い出させるのは情報ですが、患者固有の投与量推奨は規制された意思決定支援です。
CDSサービスは、コンテキストを読み取り、情報を返すソフトウェアです。それが医療機器であるかどうかは、カードの内容によります。検査値が存在するというリマインダーは情報です。特定の患者に対する投与量推奨は、EUおよび米国では医療機器の規則の対象となる意思決定支援です。健康アプリは医療機器か? を参照してください。この標準規格は中立的であり、コンテンツはそうではありません。
現在定義されているフックは以下の通りです:patient-view、order-select、order-sign、order-dispatch、encounter-start、encounter-discharge、appointment-book。新しいフックが提案される公開カタログもあります。
SMART on FHIRとの関係
CDS HooksとSMART on FHIRは補完的です。SMART on FHIRは画面の一部を引き継ぎ、ユーザーの承認を得てFHIRサーバーにクエリを実行するアプリを起動します。CDS Hooksはバックグラウンドで実行され、EHR自身のインターフェースにカードを返します。カードには、カード以上のものが必要な場合にSMART起動リンクを埋め込むことができます。
SMART on FHIRは、画面の一部を引き継ぎ、ユーザーの承認を得てFHIRサーバーと通信するアプリを起動します。CDS Hooksはバックグラウンドで実行され、カードを返します。カードは、カード以上のものが必要な場合にSMART起動リンクを運ぶことができます。ほとんどの意思決定支援製品は両方を使用します。フックは「促し」のために、SMARTアプリは「詳細」のために使用されます。
Anpherosの役割
AnpherosはCDS Hooksサービスを提供せず、臨床的な推奨事項も生成しません。患者さんの同意を得たAnpherosのFHIRレコードは、病院自身の意思決定支援サービスが読み取るデータ(薬剤、アレルギー、最近の結果)となり、フックサービスが使用するのと同じFHIR APIを通じてアクセスできます。患者同意プラットフォーム を参照してください。
関連ページ
- FHIRサブスクリプションの説明
- 健康アプリは医療機器か? EU MDRルール11
- 患者同意プラットフォーム
- FHIR検索の説明
- SMART on FHIRバックエンド(開発者向け)
- ヘルスケア相互運用性標準:マップ
- SMARTアプリ起動の説明
ソース
よくある質問
CDS HooksはFHIRの一部ですか?
これは独立したHL7仕様であり、データにはFHIRを使用しています。プリフェッチとコンテキストはFHIRリソースを運び、承認はSMART on FHIRトークンを再利用します。これはHL7によってFHIR仕様内ではなく、FHIRと並行して公開されています。
CDSサービスはどのくらいの速さで応答する必要がありますか?
仕様では数値は定められていませんが、EHRは数秒のタイムアウトを適用し、遅延した応答は破棄します。なぜなら、医師は待っているからです。プリフェッチは、サービスがクエリに時間を費やさないようにするために存在します。
CDSサービスは注文を変更できますか?
医師が受け入れる提案、または2.0では、そのサービスに対して自動的に適用することにEHRが同意したsystemActionsを通じてのみ可能です。サービスはフック中にEHRのFHIRサーバーに独自に書き込むことはありません。
患者アプリはCDS Hooksを使用しますか?
いいえ。CDS Hooksは、医師向けのEHRワークフローのために設計されています。患者アプリはFHIR APIに直接アクセスし、ログインにはSMART on FHIRを使用します。
サンドボックスで無料で試す
5分で最初のFHIR呼び出し. 患者さんの同意が組み込まれたHL7 FHIR R4 APIです。サンドボックスでお試しいただき、ご自身のアプリやクリニックのシステムを接続してください。
無料・合成患者30人・カード不要

