REDCap中如何设置多条件语句以动态展开对应数量的字段
嘿,我完全懂你刚接触REDCap时的迷茫——想要根据输入的人数X,自动展开对应数量的人员信息字段,确实一开始容易摸不着门道。别担心,我来一步步帮你实现这个需求!
首先得明确:REDCap里没法直接“动态生成新字段”,但我们可以用**分支逻辑(Branch Logic)**来预先建好所有可能的字段组,再根据你输入的人数来控制哪些显示、哪些隐藏。具体步骤如下:
创建“人数”基础字段
先建一个整数类型的字段(比如字段名设为number_of_people),标签写“How many people go in?”,可以设置一个合理的数值范围(比如1到20,根据你的实际需求调整上限)。这就是用来控制后续字段显示的核心触发字段。批量创建人员字段组
你需要为每个可能的人员都准备3个字段:是否使用A、使用量、浪费量。比如先确定你最多可能需要记录多少人(比如20人),然后批量创建这些字段:- 对于第1个人:字段分别叫
person_1_use_a(是/否类型,标签“Did person 1 use A?”)、person_1_a_used(整数类型,标签“How many A did they use?”)、person_1_a_wasted(整数类型,标签“How many A did they waste?”) - 第2到第N个人的字段以此类推,把编号换成对应数字就行。
这里推荐用REDCap的批量添加字段功能,直接复制类似下面的模板(替换成你的表单名)导入,能省超多时间:
field_name,form_name,section_header,field_type,label,branch_logic person_1_use_a,your_form_name,Person 1,yesno,Did person 1 use A?,[number_of_people] >= 1 person_1_a_used,your_form_name,,integer,How many A did they use?,[number_of_people] >= 1 person_1_a_wasted,your_form_name,,integer,How many A did they waste?,[number_of_people] >= 1 person_2_use_a,your_form_name,Person 2,yesno,Did person 2 use A?,[number_of_people] >= 2 person_2_a_used,your_form_name,,integer,How many A did they use?,[number_of_people] >= 2 person_2_a_wasted,your_form_name,,integer,How many A did they waste?,[number_of_people] >= 2- 对于第1个人:字段分别叫
设置分支逻辑控制显示
刚才的模板里其实已经加了分支逻辑,但如果你是手动建字段,记得给每组人员的3个字段都设置相同的分支逻辑:- 第1组字段的分支逻辑:
[number_of_people] >= 1 - 第2组字段的分支逻辑:
[number_of_people] >= 2 - ...
- 第X组字段的分支逻辑:
[number_of_people] >= X
这样一来,当你输入X=3时,系统就会自动显示第1、2、3组的所有字段,后面的字段都会隐藏起来,完全符合你想要的效果!
- 第1组字段的分支逻辑:
之前你试的IF语句没用对地方,因为REDCap的分支逻辑是用字段值来控制显示状态,而不是用函数动态生成字段。预先建好所有可能的字段组,再用分支逻辑匹配人数,就是实现这个需求的标准做法啦。
备注:内容来源于stack exchange,提问作者user2548662

