findMatching2SFormWithinRange( )
查找两个区段表单的重复区段实例,该区段由行 ID 标识,与作为搜索关键字提供的项值匹配。搜索可以基于搜索关键字或日期范围。
- 不能使用下拉列表、单选按钮或复选框值作为函数参数或目标。
- 前两个参数应始终是日期范围。之后可以提供其他搜索关键字。
- 此函数还考虑日期为
null
的条目。如果任何重复表单实例的开始日期或结束日期为空,则系统假定日期以便成功执行日期范围重叠检查:- 如果开始日期为
null
,则系统假定其为 0001 年 1 月 1 日。 - 如果结束日期为
null
,则假定结束日期为 01-Dec-3099。
- 如果开始日期为
- 如果变量设计为保存部分日期,则以相同的部分日期格式提供该参数的值。您可以采用以下格式使用部分日期:
- <dd-mmm-yyyy hh:mm>
- <dd-mmm-yyyy hh>
- <dd-mmm-yyyy>
- <mmm-yyyy>
- <yyyy>
这是聚合函数。在目标位于两部分表单的重复部分的情况下,将为每个实例运行规则。
语法
findMatching2SFormWithinRange('startDateVariable',startDateValue, 'endDateVariable', endDateValue, 'variable1', value1, 'variable2', value2, ...)
参数
注意:
允许在规则表达式的其他位置重复使用传递给此函数的变量,但是必须使用单引号将变量添加为参数。参数 | 必选/可选 | 说明 |
---|---|---|
startDateVariable |
必需 | 重复表单上的日期项,用作要评估的日期范围的开始日期。 |
startDateValue |
必需 | 日期范围的开始日期的日期值。这必须以字符串格式提供,必须进行硬编码,不能是规则变量:
|
endDateVariable |
必需 | 重复表单上的日期项,用作要评估的日期范围的结束日期。 |
endDateValue |
必需 | 日期范围的结束日期的日期值。
请考虑与 startDateValue 守护进程中相同的要求。 |
variable(s) |
可选 | 要搜索的项变量,使用单引号传入。 |
value(s) |
可选 | 搜索给定变量的值。这些变量必须是硬编码的,不能是规则变量。 |
返回值
表示找到匹配值的实例的索引的编号 ( >0 )。
- 如果找到多个实例,则仅返回第一个索引。
- 如果未找到匹配项,则返回 -1 。
注意:
在日期中,UNK
值被视为与任何其他值匹配。例如:'Date(01-Feb-2022)'
和 'Date(20-Feb-2022)'
都被视为具有 UNK-Feb-2022
日期值的条目的匹配项。
示例
示例 3-69 如果存在日期变量在给定范围内且存在任何其他与之匹配的给定条件的任何实例,则引发查询
// Given 5 repeating form instances with items "onsetStart", "onsetEnd" and "itmSymptom"
//Raises query if symptom = "headache" AND onSet date is between Jan 1 2020 and March 1 2020
if (findMatching2SFormWithinRange('onsetStart', 'Date(01-JAN-2020)', 'onsetEnd', 'Date(01-MAR-2020)', 'itmSymptom', "headache") > 0) {
return false;
} else {
return true;
}
// Fires query if any of the 5 instances contain onset dates between Jan 1 2020 - March 1 2020 AND itmSymptom = "headache"
//if rule variable (datetimeVar) is datetime componentif (findMatching2SFormWithinRange(2, 'onsetStart', 'Date(01-JAN-2020)', 'onsetEnd', 'Date(01-MAR-2020)', 'datetimeVar', 'Date(10-Jun-2010 11:12:15)') > 0) {
return false;
} else {
return true;
}
//if rule variable (timeVar) is time componentif (findMatching2SFormWithinRange(2, 'onsetStart', 'Date(01-JAN-2020)', 'onsetEnd', 'Date(01-MAR-2020)', 'timeVar', 'Time(11:12:15)') > 0) {
return false;
} else {
return true;
}
父主题:两个部分表单函数