实施科学:让有证据的服务在真实场景中被采用和持续使用
先区分要落实的服务/干预(innovation/intervention)与帮助它落实的实施策略(strategy)。例如,“规范的慢病随访服务”与“为实施该服务提供培训、反馈和促进支持”是两条不同的线。研究应同时明确谁采用、如何交付、为何受阻、产生何种结果。[I1–I4]
1. 把研究问题写成可执行句子
在【场景与机构】中,为【人群】落实【已有证据的服务】时,针对【已识别障碍】,由【执行者】实施【策略及剂量】,相对于【比较条件】,在【时间窗】内改善【主要实施结局】,并观察【服务或健康结局】。
先评估服务本身的证据与可实施性,不把“有效性未知”隐藏成单纯推广问题。研究不是将多个框架名词拼接;框架服务于具体问题、构念和数据。
2. 框架按任务分工
| 任务 | 候选工具 | 用法与边界 |
|---|---|---|
| 解释障碍与促进因素 | 更新版CFIR(2022);2025使用指南 | 按问题选构念,建立访谈/观察与分析对应;不是全部条目强制打分 |
| 规划和评价真实世界覆盖 | RE-AIM | 分开触达、效果、采纳、实施、维持;逐维指定层级、分母与时间 |
| 定义实施成效 | Proctor实施结局 | 区分实施、服务与健康结局;不把患者满意度当所有实施成功 |
| 具体说明实施支持措施 | ERIC策略术语 | 明确谁对谁做什么、何时、多频繁及预期机制;不是看到障碍就机械配策略 |
| 组织结果报告 | StaRI | 服务干预与实施策略分两条线报告;另按具体研究设计核对报告规范 |
CFIR常用于解释决定因素,RE-AIM常用于规划与评价;两者可互补,但不是同一套量表。构念名称本身不会产生因果识别。[I1–I3、I6–I8]
3. 结局、分母与时间窗
Proctor等区分可接受性、采纳、适切性、可行性、忠实度、实施成本、渗透/整合和可持续性。分别定义测量对象与操作化指标;临床效果和服务系统结果单独记录。[I4]
| 指标例子 | 分子 | 分母 | 注意 |
|---|---|---|---|
| 触达 | 实际接受服务的符合条件者 | 目标范围内全部符合条件者 | 说明招募、拒绝和排除;还要看代表性 |
| 机构采纳 | 开始采用服务的机构 | 纳入目标的符合条件机构 | 机构层和工作人员层不要混算 |
| 忠实度 | 按规定完成核心环节的服务次数 | 应执行这些环节的服务次数 | 区分适应性调整与偏离;不适用不是未完成 |
| 维持 | 规定随访时点仍运行的机构 | 按方案定义的初始或已采纳机构 | 明确时点和分母,不能临时替换 |
| 单位实施成本 | 明确视角下的实施资源成本 | 对应触达者/采纳机构数 | 分开服务成本与实施支持成本,注明币种和价格年 |
分母为0时显示缺失并说明原因,不能直接记为0%。机构平均比例与“总分子/总分母”是不同估计目标;两者不能混报。可接受性等潜变量如使用量表,需核对授权、译本、测量性质及本场景适用性,不能把自编问题标成已验证量表。
4. 选择设计与hybrid类型
| 类型 | 主要关注 | 同时关注 |
|---|---|---|
| Hybrid 1 | 检验服务干预有效性 | 探索实施条件与障碍 |
| Hybrid 2 | 服务干预与实施策略的双重研究目标 | 两类目标的样本量、结局和比较均须说明 |
| Hybrid 3 | 检验实施策略对实施结局的作用 | 观察服务/健康效果 |
类型描述研究目标的侧重,不能替代具体的随机、准实验或观察设计。根据已有服务证据、场景差异、污染和可行性选择个体/整群随机、分阶段推行或适当准实验;阶梯楔形设计仍要处理日历时间和机构相关性,不能等同简单前后比较。[I5]
样本量以主要目标和分配层级计算,考虑ICC、机构大小差异、双重主要结局与缺失;不能把个体数当成独立机构数。
5. 实施策略与机制表
一行一个策略:执行者 → 具体行动 → 对象 → 频率/时长 → 对应障碍 → 预期机制 → 近端实施结局 → 远端服务/健康结局。区分计划剂量与实际执行,记录适应性修改的时间、理由和决定者。[I6]
访谈可按选定CFIR构念设计,同时保留开放编码与反例。建立联合展示:构念、定性证据、量化指标、相符/不符、替代解释。不能用访谈提及次数直接估计人群比例,也不能仅凭显著路径判定机制成立。
6. 数据与分析
下载实施研究字段模板。至少包括机构/工作人员/服务对象层级ID,策略分配,服务定义,实施阶段,时间,分母,采纳与执行记录,适应性修改,成本及相关群体特征。公开模板不含任何个体记录。
下方教学例子把40个机构随机分配至两种实施策略,对同一种临床服务计算采纳、触达、执行忠实度和单位实施成本。主示例比较等机构权重的触达率;重复时间点需另建纵向模型。
忠实度在实际接受服务者中计算,条件于一个分组后的变量;组间忠实度差不能自动解释为随机策略对所有符合条件者的因果效应。R脚本已运行并检查分母与缺失逻辑;Stata未执行。模拟数据只演示计算,不提供效果证据。
7. 公平与标准化病人联用
按预先定义的群体查看谁未被触达、谁承担更大负担、机构是否代表目标场景。平均改善不排除差距扩大。公平性补充
标准化病人可提供统一情境的服务过程评价,帮助比较策略实施前后或不同组的实际处置;仍需单独收集实施策略执行、采纳和成本,不能把USP处置合格率直接改名为全部实施成功。
8. 按StaRI交付
分别报告服务干预、实施策略及其依据;交代情境、适应性修改、设计、比较、主要分母、过程、实施/健康结局和局限。交付研究问题表、框架—构念映射、逻辑模型、策略操作表、测量字典、混合方法联合展示、分析计划与报告核对表。[I7]
可复制提问:“我想提高基层指南采纳。请区分服务干预与实施策略,用CFIR选择障碍、RE-AIM定义分母,并比较hybrid 1/2/3的适用条件。”
核对来源
- I1. Damschroder等,2022,更新版CFIR。原文。
- I2. CFIR User Guide,2025,五步使用指南。原文。
- I3. RE-AIM框架团队。官方五维说明。
- I4. Proctor等,2011,实施结局概念区分。原文。
- I5. Curran等,2012,Effectiveness-implementation Hybrid Designs。原文。
- I6. Powell等,2015,ERIC策略术语整理。原文。
- I7. Pinnock等,2017,StaRI。EQUATOR登记与清单。
- I8. CFIR官方资源。
核对日期:2026-10-24。完整题名、DOI、作者及核验范围。本文为本站原创教学整理,未复制论文全文。
教学代码:可以单独下载,也可展开复制
机构层级分析 · R
# Original teaching simulation: same clinical service, two implementation strategies.
set.seed(20261025)
d <- data.frame(site_id=1:40, strategy=sample(rep(0:1,each=20)))
d$eligible <- sample(50:100, 40, replace=TRUE)
d$adopted <- rbinom(40, 1, plogis(-0.1 + 0.6*d$strategy))
d$reached <- ifelse(d$adopted==1,
rbinom(40, d$eligible, plogis(-0.3 + 0.3*d$strategy)), 0)
d$completed <- rbinom(40, d$reached, 0.8)
safe_ratio <- function(num,den) ifelse(den>0,num/den,NA_real_)
d$reach <- safe_ratio(d$reached,d$eligible)
d$fidelity <- safe_ratio(d$completed,d$reached)
d$implementation_cost <- 500 + 15*d$reached
summary_by_arm <- do.call(rbind,lapply(split(d,d$strategy), function(x)
data.frame(strategy=x$strategy[1], sites=nrow(x),
adoption=mean(x$adopted), reach_person_weighted=sum(x$reached)/sum(x$eligible),
reach_site_weighted=mean(x$reach), fidelity_among_reached=safe_ratio(sum(x$completed),sum(x$reached)),
cost_per_reached=safe_ratio(sum(x$implementation_cost),sum(x$reached)))))
print(summary_by_arm)
# Primary example: strategy effect on equal-site reach, at one prespecified time.
fit <- t.test(d$reach[d$strategy==1],d$reach[d$strategy==0])
print(data.frame(reach_difference=unname(fit$estimate[1]-fit$estimate[2]),
lower=fit$conf.int[1],upper=fit$conf.int[2]))
# Fidelity conditions on reach. Its between-arm contrast is not automatically
# a causal strategy effect because reaching the service is post-allocation.
stopifnot(all(d$completed<=d$reached),all(d$reached<=d$eligible),
is.na(safe_ratio(0,0)),all(is.na(d$fidelity[d$reached==0])),
all(is.finite(fit$conf.int)))
cat('PASS: denominators, missing zero-denominator ratios, 40 randomized sites, finite interval\n')
机构层级分析 · STATA
* Teaching template. Not run in Stata in this release.
clear all
set seed 20261025
set obs 40
gen site_id = _n
gen allocation_order = runiform()
sort allocation_order
gen strategy = (_n > 20)
gen eligible = 50 + floor(51*runiform())
gen adopted = runiform() < invlogit(-.1+.6*strategy)
gen reached = rbinomial(eligible, invlogit(-.3+.3*strategy)) if adopted==1
replace reached = 0 if adopted==0
gen completed = rbinomial(reached,.8)
gen reach = reached/eligible if eligible>0
gen fidelity = completed/reached if reached>0
gen implementation_cost = 500+15*reached
assert completed<=reached & reached<=eligible
assert missing(fidelity) if reached==0
tabstat adopted reach fidelity, by(strategy) stat(mean n)
* Site-weighted reach contrast. Zero reach remains in the primary analysis.
regress reach i.strategy, vce(robust)
lincom 1.strategy
* Person-weighted summaries use pooled numerators AND denominators.
preserve
collapse (sum) reached eligible completed implementation_cost, by(strategy)
gen pooled_reach = reached/eligible
gen pooled_fidelity = completed/reached if reached>0
gen cost_per_reached = implementation_cost/reached if reached>0
list, noobs
restore
* These are different estimands; do not equate a conditional fidelity contrast
* with a randomized strategy effect on everyone originally eligible.
普贤 · 社医卫管方法库 · 教学参数与代码接口需结合实际数据、软件版本和研究设计核对。