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

Posted

技术标签:

【中文标题】如何根据同一仪器中先前的复选框结果自动填充 REDCap 复选框【英文标题】:How to Autofill REDCap Checkboxes Based on Previous Checkbox Results in Same Instrument 【发布时间】:2021-04-12 23:43:25 【问题描述】:

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

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',否则它将留空。

【问题讨论】:

【参考方案1】:

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

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

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

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

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

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

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

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

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

【讨论】:

以上是关于如何根据同一仪器中先前的复选框结果自动填充 REDCap 复选框的主要内容,如果未能解决你的问题,请参考以下文章

ms 根据先前记录的日期访问自动填充日期字段

如何根据先前活动中的操作填充 ListView?

如何根据先前的用户选择在 Django 中预填充(多个)ChoiceField

是否可以使用仪器在自动化测试中检索图像名称?

从数据库中自动填充 struts2 复选框

如何根据 Snowflake 中先前查询的结果提交/回滚事务?