You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

REDCap如何根据上一题选项显示对应多选题选项?

REDCap 联动多选题实现方案

方案1:动态下拉菜单(推荐,REDCap 10.8+ 支持)

这是最直观的实现方式,无需复杂逻辑,直接通过内置功能完成联动:

  • 新建第一题(大洲多选),字段名设为continent,类型选多选框(Multiple Choice - Checkboxes),选项配置如下:
    1,亚洲
    2,欧洲
    3,非洲
    4,北美洲
    5,南美洲
    6,大洋洲
    7,南极洲
    
  • 新建第二题(国家选框),字段名设为country,类型选动态下拉菜单(Dynamic Dropdown List),在「动态下拉设置」中:
    • 选择「基于另一个字段的选项过滤」
    • 关联字段选择continent
    • 选项列表按「国家编码,国家名称,对应大洲编码」格式配置,示例:
      CN,中国,1
      JP,日本,1
      DE,德国,2
      FR,法国,2
      NG,尼日利亚,3
      US,美国,4
      BR,巴西,5
      AU,澳大利亚,6
      AQ,南极洲,7
      
  • 保存后测试:选中多个大洲,国家下拉框会自动合并显示所有对应国家,无需额外分支逻辑。

方案2:@CALCTEXT + 动态选项生成(兼容旧版本)

若你的REDCap版本不支持动态下拉,可通过计算函数生成适配选项:

  • 新建大洲多选字段continent,选项同方案1
  • 新建隐藏计算字段selected_continents,类型为计算字段(Calculated Field),计算规则用@CALCTEXT拼接选中的大洲编码:
    @CALCTEXT(if([continent] contains '1','1,','') + if([continent] contains '2','2,','') + if([continent] contains '3','3,','') + if([continent] contains '4','4,','') + if([continent] contains '5','5,','') + if([continent] contains '6','6,','') + if([continent] contains '7','7,',''))
    
    该字段会输出选中大洲的编码拼接字符串(如选亚洲+欧洲则输出1,2,)
  • 新建国家多选字段country,在「选项列表」中用@CALCTEXT动态生成对应选项:
    @CALCTEXT(if([continent] contains '1','CN,中国\nJP,日本\n','') + if([continent] contains '2','DE,德国\nFR,法国\n','') + if([continent] contains '3','NG,尼日利亚\n','') + ...)
    
    注:用\n分隔不同选项,选中对应大洲时,国家题会自动加载该大洲的所有选项。

方案3:SQL查询实现(需数据库权限)

若项目连接外部数据库,可通过SQL动态拉取匹配选项:

  • 在外部数据库创建country_continent表并插入数据:
    CREATE TABLE country_continent (
        country_code VARCHAR(2) PRIMARY KEY,
        country_name VARCHAR(50),
        continent_code INT
    );
    
    INSERT INTO country_continent VALUES
    ('CN','中国',1), ('JP','日本',1), ('DE','德国',2), ('FR','法国',2);
    
  • 新建大洲多选字段continent,选项同方案1
  • 新建国家字段country,类型选SQL查询下拉/多选框,SQL查询语句配置:
    SELECT country_code, country_name
    FROM country_continent
    WHERE continent_code IN ([continent])
    
    注:[continent]会被REDCap自动替换为选中的大洲编码(多值自动用逗号分隔),实现多选联动。

操作注意事项

  • 大洲和国家的编码需严格统一(如亚洲对应编码1,所有亚洲国家的关联编码也必须是1)
  • 动态下拉和SQL方案支持多选大洲自动合并对应国家选项
  • 使用@CALCTEXT生成选项时,必须用\n分隔不同选项,否则无法正确解析

参考资料

  • REDCap 内置帮助:动态下拉菜单说明(项目设置→字段工具→动态下拉帮助)
  • REDCap 计算函数参考:@CALCTEXT、contains函数说明(创建计算字段时查看右侧帮助)
  • REDCap SQL查询字段指南:内置在SQL字段设置页面的帮助文本

内容的提问来源于stack exchange,提问作者psoares

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 15:43:33