REDCap中基于多选字段选择结果捕获另一字段预设文本的技术问询
解决方案
方案1:使用@CALCTEXT动作标签(推荐,适配REDCap 10.0及以上版本)
该标签为文本类字段专属的计算标签,支持基于其他字段的取值返回自定义文本结果,是实现该需求的最优解,操作步骤如下:
- 确认
option_statement字段类型为文本框(Text Box) - 在该字段的「动作标签/验证标签」栏填入如下逻辑:
@CALCTEXT( if([sample_options] = "1", "对应选项1的声明文本", if([sample_options] = "2", "对应选项2的声明文本", if([sample_options] = "3", "对应选项3的声明文本", if([sample_options] = "4", "对应选项4的声明文本", "")))) ) @HIDDEN
- 按需调整逻辑中的选项值、对应预设文本即可。
@HIDDEN标签会对用户隐藏该字段,同时禁止用户编辑,系统会自动根据sample_options的选择结果实时更新option_statement的取值。
如果你的多选字段支持同时选中多个选项,可以把逻辑调整为多条件拼接,示例如下:
@CALCTEXT( concatenate( if(contains([sample_options], "1"), "对应选项1的声明文本\n", ""), if(contains([sample_options], "2"), "对应选项2的声明文本\n", ""), if(contains([sample_options], "3"), "对应选项3的声明文本\n", ""), if(contains([sample_options], "4"), "对应选项4的声明文本\n", "") ) ) @HIDDEN
方案2:低版本REDCap兼容方案(10.0版本以下无@CALCTEXT时使用)
如果你的REDCap版本不支持@CALCTEXT标签,可以通过分支逻辑结合@DEFAULT标签实现:
- 新增4个隐藏的文本字段,每个字段的默认值分别对应4个选项的预设文本,同时给每个字段设置分支逻辑:仅当
sample_options选中对应选项时生效(搭配@HIDDEN标签,不会对用户可见) - 给
option_statement字段添加@DEFAULT标签,将4个隐藏字段的取值拼接,同一时间仅会有一个隐藏字段被触发赋值,最终得到的就是选中选项对应的预设文本。
内容的提问来源于stack exchange,提问作者Daniel W. Farlow
相关产品推荐
相关产品推荐

