REDCap中用Calculated Text批量提取勾选True的字段标签
REDCap CalcText 高效汇总True题项标签方案
可以通过PHP循环逻辑实现,无需编写20个独立的if-then语句,核心思路是遍历所有目标字段,收集值为True的题项标签,最后拼接输出。
核心代码(直接复制到CalcText字段)
<?php // 初始化数组存储选中的题项标签 $selected_items = []; // 循环遍历question1到question20 for ($num = 1; $num <= 20; $num++) { // 动态生成字段名和标签变量名 $field_name = "question{$num}"; $item_label = "{{question{$num}_label}}"; // 判断当前题项是否为True(注意:此处1对应True,若你的字段存储值为'TRUE',则改为$$field_name == 'TRUE') if ($$field_name == 1) { $selected_items[] = $item_label; } } // 拼接输出,用逗号分隔;若未选中任何题项,输出提示文本 echo empty($selected_items) ? "未选中任何题项" : implode(', ', $selected_items); ?>
关键说明
- 存储值适配:如果你的True/False字段在REDCap中的存储值是字符串
'TRUE'/'FALSE',请将判断条件中的$$field_name == 1改为$$field_name == 'TRUE' - 分隔符自定义:可以把
implode(', ', $selected_items)中的,换成<br>实现换行分隔,或者其他你需要的分隔符 - 变量变量用法:
$$field_name是PHP的变量变量语法,用于动态获取当前循环对应的字段值,避免手动逐个写{{question1}}、{{question2}} - 标签获取:
{{question{$num}_label}}是REDCap的内置语法,用于获取对应字段的显示标签(即问卷上的题项文本)
内容的提问来源于stack exchange,提问作者purpleblade98
相关产品推荐
相关产品推荐

