如何根据同一仪器中先前的复选框结果自动填充 REDcap 复选框

问题描述

我想根据同一工具中前一个字段的结果自动填写调查复选框。对于我的示例,如果受访者使用的是红色工具包,我希望他们在初始工具包问题中​​选择是,因此随后的复选框字段已回答了哪些类型的工具,以节省填写所有工具的时间在工具包中。

this is the field set up. Once kit 'Yes' is selected,I want red hammer and nails to be automatically selected

我了解如何使用 @DEFAULT='[prevIoUs field name]' 对文本字段执行此操作,但我无法对复选框进行此操作。将 @DEFAULT='[kit]' 添加到锤子或钉子使用的字段中不会导致自动填充选择。如果动作可以是有条件的,那也很好,如在套件中选择“是”然后锤=“1”,否则它将留空。

谢谢

解决方法

请参阅有关管道的内置帮助和常见问题解答:

如果您将答案FROM传送到一个多选字段(单选、下拉),它会在字段传送的位置显示选项标签(不是编码数据值) .例如,如果您有一个下拉式问题,内容为“您最喜欢的冰淇淋是什么?”选择“巧克力”、“香草”和“草莓”(均分别编码为 0、1、2),然后选择“巧克力”后,下一个问题将显示“在 1 到 10 的范围内,如何你很喜欢巧克力吗?'。

但是对于非多选字段,例如 Text、Notes、Slider 字段,它将通过管道传输文字数据值。如果您希望通过管道传输多项选择字段的值(而不是标签),请将 ':value' 附加到括号内的变量名称 - 例如,[race:value]。

注意:如果您想将多选字段的值作为字段的默认值进行管道传输,则必须在@DEFAULT 操作标记内进行管道传输时使用“:value”。

从分类字段(无线电、下拉列表等)管道的默认行为是管道标签(在您的示例中为文本“是”)。但是,您使用 @DEFAULT 操作标记将值通过管道传送到的复选框字段需要选择代码(值)。幸运的是,有一个选项可以使用 [field:value] 来传递值而不是标签。

因此将 @DEFAULT='[kit:value]' 添加到您的锤子/钉子字段是您想要的。

但是还有一个问题; @DEFAULT 在页面加载时进行评估,因此无法使用数据库中的值根据调查或表单当前页面中的答案动态选择默认值。如果不在数据库中,则不能使用当前页面中的值。

通常,这是通过用分页符分隔两个字段来解决的(工具中的新部分字段,在调查设置中启用了“每页一个部分”选项)。这样,当用户单击“下一页”时,[kit] 的值会提交到数据库,然后 @DEFAULT 可以从数据库中读取该值并使用它来自动选择复选框选项之一.

最后一个考虑是您的 [kit] 字段和您的锤子/钉子字段中的编码值必须兼容。如果 1,Yes 对应于锤子和钉子的“红色”,则这些复选框中的“红色锤子”和“红色钉子”选项应编码为 1@DEFAULT 无法执行任何计算或评估任何逻辑,因此您不能使用它来表示“如果为套件选择了“是”,那么锤子=1,否则将其留空”;它的工作方式是采用单个参数并使用该参数在页面加载和构建字段时自动选择选项(或者,如果它是文本输入字段,则将参数作为文本插入)。此过程中没有评估任何逻辑的余地。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...