简而言之: CDS Hooks 是 HL7 的一项标准,它允许电子病历 (EHR) 在临床医生工作流程中的特定时刻(hooks)调用外部临床决策支持服务:打开患者病历 (patient-view)、选择医嘱 (order-select)、签署医嘱 (order-sign)、开始或结束就诊。EHR 会发送上下文信息,并可选地发送预取的 FHIR 数据;服务会在几秒钟内以卡片形式进行响应:包含简短信息、警告或建议,以及可以启动 SMART on FHIR 应用的链接。临床医生仍留在 EHR 中;智能功能则在 EHR 之外运行。
三个步骤
CDS Hooks 的工作流程分为三个步骤。第一步是发现:EHR(电子健康记录)会获取 GET /cds-services,了解每个服务响应哪个钩子以及它想要预取哪些 FHIR 数据。第二步是钩子调用:在工作流程事件(例如订单签名)发生时,EHR 会将上下文和预取资源 POST 给服务。第三步是响应:服务会返回卡片,EHR 会显示这些卡片。
1. 发现。 EHR 获取 GET https://cds.example.org/cds-services 并收到服务列表,每项服务都包含它响应的 hook 以及它希望预取的数据的 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. Hook 调用。 当临床医生签署医嘱时,EHR 会 POST 到 /cds-services/renal-dosing:
{
"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 中绘制自己的界面。
2.0 版本新增功能
CDS Hooks 2.0 版本于 2022 年发布,新增了一个反馈端点,EHR 可通过该端点报告卡片是否被接受、被拒绝的原因以及是否被忽略;systemActions,EHR 在不询问的情况下进行的低风险的后台操作;fhirAuthorization.subject 字段;以及更清晰的建议选择行为规则(最多一个或任意)。
于 2022 年发布:一个反馈端点 (POST /cds-services/{id}/feedback),EHR 通过该端点报告卡片是否被接受、被覆盖(附带原因)或被忽略;systemActions,即 EHR 在未征求意见的情况下应用的更改,用于低风险的后台管理,例如添加编码原因;fhirAuthorization.subject;以及关于建议的 selectionBehavior(at-most-one 或 any)的更清晰规则。
服务是什么,又是什么不是
CDS Hooks 服务是读取工作流程上下文并以卡片形式返回信息的软件;它本身并非医疗器械。在欧盟和美国是否适用医疗器械规则取决于其内容:提醒临床医生某个实验室值存在属于信息,而患者特定的剂量推荐则属于受监管的决策支持。
CDS 服务是读取上下文并返回信息的软件。它是否是医疗器械取决于卡片的内容:提醒存在某个实验室值是信息;为特定患者推荐剂量是决策支持,在欧盟和美国属于医疗器械的范畴。请参阅 健康应用是否是医疗器械?。该标准是中立的;内容则不然。
目前定义的 Hooks 包括:patient-view、order-select、order-sign、order-dispatch、encounter-start、encounter-discharge、appointment-book,并有一个公共目录用于提议新的 Hooks。
与 SMART on FHIR 的关系
CDS Hooks 和 SMART on FHIR 是互补的。SMART on FHIR 会启动一个应用程序,接管屏幕的一部分,并在用户授权下查询 FHIR 服务器;CDS Hooks 在后台运行,并将卡片显示在 EHR 的自身界面中。当需要更多信息时,卡片可以携带一个 SMART 启动链接。
SMART on FHIR 会启动一个应用,该应用会接管屏幕的一部分,并在用户授权下与 FHIR 服务器进行通信。CDS Hooks 则在后台运行并返回卡片;当需要卡片以外的内容时,卡片可以携带一个 SMART 启动链接。大多数决策支持产品会同时使用两者:Hooks 用于提醒,SMART 应用用于详细信息。
Anpheros 的定位
Anpheros 不提供 CDS Hooks 服务,也不生成临床建议。在患者同意的情况下,其 FHIR 记录可以作为医院自己的决策支持服务(如用药、过敏史、近期检查结果)读取的数据,通过与 Hook 服务相同的 FHIR API 进行访问。请参阅 患者同意平台。
相关页面
来源
常见问题
CDS Hooks 是 FHIR 的一部分吗?
它是 HL7 的一项独立规范,使用 FHIR 作为其数据格式:预取和上下文携带 FHIR 资源,授权重用 SMART on FHIR 令牌。它由 HL7 与 FHIR 一同发布,而不是包含在 FHIR 规范中。
CDS 服务必须多快响应?
规范没有固定数字,但 EHR 会设置几秒钟的超时,并丢弃延迟的响应,因为临床医生正在等待。预取正是为了让服务不必花费时间进行查询。
CDS 服务可以更改医嘱吗?
只能通过提出临床医生接受的建议,或者在 2.0 版本中,通过 EHR 同意为该服务自动应用的 systemActions 来实现。服务在 Hook 期间绝不会自行写入 EHR 的 FHIR 服务器。
患者应用是否使用 CDS Hooks?
不。CDS Hooks 是为面向临床医生的 EHR 工作流程设计的。患者应用直接使用 FHIR API,并使用 SMART on FHIR 进行登录。
在沙盒中免费试用
5 分钟完成第一次 FHIR 调用. 一个内置患者授权的 HL7 FHIR R4 API:先在沙盒中试用,然后连接您自己的应用或诊所系统。
免费 · 30 位合成患者 · 无需信用卡

