OpenClinica 用户手册/计算
在 CRF 的 XL 中,您可以在第 N 列 RESPONSE_TYPE 中选择类型“计算”。在其他程序中,这有时被称为派生字段。例如,您可以使用它来添加两个项目 Item1 和 Item2 的值,它们都是整数。
方法是创建一个名为 SumOfItem1AndItem2 的项目,类型为计算。现在,我们将从第 Q 列 RESPONSE_VALUES_OR_CALCULATIONS 开始。我们将以格式 func: Item1 + Item2 放入我们的计算。由于我们在此列中填写了一些内容,因此我们还必须填写前面的两列 RESPONSE_OPTIONS_TEXT 和 RESPONSE_LABEL。为了简化操作,我们将两列都填写为“calc”。
在上面的示例中,我们添加了两个项目的的值,同样我们可以减去它们,但如果我们想要这两个项目之间的差值怎么办?而且不仅仅是 Item1 - Item2:我们想要 Item1 和 Item2 之间的绝对差值。在我们的计算中,我们可以使用两个函数 POW 和 DECODE。
POW 当然代表 Power,它使用两个参数:一个数字和一个幂(不出所料!)。例如,pow(2,3) 是 8。我们可以使用 1/2 来表示平方根,所以 pow(25, 0.5) 是 5。
为了实现我们的绝对差值目标,我们在第 Q 列中输入:func: pow(pow(Item1-Item2,2),1/2)。此函数首先计算差值的 2 次方,然后计算平方根,从而得到绝对差值。
在 CRF 中使用函数的另一个示例是在您希望用户以摄氏度和华氏度输入温度时。您使用一个名为 Temperature 的字段和一个名为 TempUnit 的字段以及一个名为 TempInCelsius 的计算字段来设计 CRF。在 TempUnit 中,用户可以选择摄氏度或华氏度,结果是 F 或 C。
在我们的摄氏度计算中,我们将使用 decode 函数。此函数的语法如下:
- 要评估的变量
- 一个或多个键值对
- 一个默认值
在我们的示例中,我们将测试项目 TempUnit。如果它是“C”,那么我们将使用项目 Temperature 的值。在另一种情况下,即默认情况下,它将是华氏度,因此我们将减去 32,然后乘以 5/9。然后该函数将如下所示:func: decode(TempUnit,C,Temperature,((Temperature-32)*5/9))。