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

REDCap中基于age和BMI数值字段自动填充radio字段var1的求助

REDCap自动填充单选字段解决方案(age>2且BMI>15时设为Yes)

针对你使用REDCap 14.0.15遇到的@CALCTEXT、@SHOWCHOICE无效问题,提供两种可行方案:

方案一:使用@DEFAULT逻辑表达式

这是REDCap原生支持的后端计算方式,适用于大多数场景:

  1. 进入var1字段的编辑界面
  2. 在「Default Value」输入框中填入:
    @DEFAULT(if([age]>2 and [BMI]>15, 'Yes', 'No'))
  3. 确保age和BMI字段为数值类型(文本数值字段需保证输入内容可解析为数字)
  4. 保存设置后,页面加载或字段值更新时,var1会自动根据条件填充对应选项,且数据导入、批量编辑场景下也能生效。

方案二:自定义JavaScript实时触发

若需要前端即时响应输入变化,可添加自定义JS:

  1. 进入项目「项目设置」→「自定义JavaScript」,粘贴以下代码:
// 监听age和BMI字段的输入变化
$(document).on('change input', '[name="age"], [name="BMI"]', function() {
    const age = parseFloat($('[name="age"]').val());
    const bmi = parseFloat($('[name="BMI"]').val());
    const var1Radio = $('[name="var1"]');

    if (!isNaN(age) && !isNaN(bmi) && age > 2 && bmi > 15) {
        var1Radio.find('input[value="Yes"]').prop('checked', true).trigger('change');
    } else {
        var1Radio.find('input[value="No"]').prop('checked', true).trigger('change');
    }
});

// 页面初始化时执行一次
$(document).ready(function() {
    $('[name="age"]').trigger('change');
});
  1. 注意:若为纵向重复表单项目,需将选择器修改为[name^="age["], [name^="BMI["]以匹配重复实例字段。

额外注意事项

  • 确认代码中字段变量名(如age、BMI)与项目实际字段变量名完全一致
  • @DEFAULT方法依赖REDCap的后端计算逻辑,JS仅在前端页面操作时生效,可根据需求选择

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 17:52:07