epidata使用技巧

1.epidata 如何自动计算年龄,BMI?

>qes代码:

epidata tips
{rsdate} 调查日期:<yyyy/mm/dd>
{birthdate} 出生日期:<yyyy/mm/dd>
{age} 年龄:##
{height} 身高:#.## m 
{weight} 体重:###.# kg 
{bmi} BMI:##.## kg/m2

>chk代码:

age
  BEFORE ENTRY
    age=year(rsdate)-year(birthdate)
  END
END
bmi
  BEFORE ENTRY
    bmi=weight/height^2
  END
END

>录入效果

 2.crf表中,常出现伴随病史、既往用药史等涉及到多条记录的变量,但每个个体出现的记录数不同时,如空余较多,需要多次回车,如何实现自动跳转,提高录入效率?

例如:在进行本次调查之前,受试者是否存在任何疾病?记录已经结束的疾病,当前疾病转至伴随疾病史

序号疾病名称结束日期

1

a2024/10/24
2b2024/10/24
3
4
5
6
7
8
9
10

>qes代码:

既往病史
{qt} 既往病史记录数: ##
         疾病名称                结束日期
{a1}  ____________________   {b1}  <yyyy/mm/dd>
{a2}  ____________________   {b2}  <yyyy/mm/dd>
{a3}  ____________________   {b3}  <yyyy/mm/dd>
{a4}  ____________________   {b4}  <yyyy/mm/dd>
{a5}  ____________________   {b5}  <yyyy/mm/dd>
{a6}  ____________________   {b6}  <yyyy/mm/dd>
{a7}  ____________________   {b7}  <yyyy/mm/dd>
{a8}  ____________________   {b8}  <yyyy/mm/dd>
{a9}  ____________________   {b9}  <yyyy/mm/dd>
{a10} ____________________   {b10} <yyyy/mm/dd>

{next} 下一题:#

>chk代码:

qt
  RANGE 0 10
  JUMPS
    0 next
  END
  MUSTENTER
END

b1
  AFTER ENTRY
    IF (qt=1) THEN
      GOTO next
    ENDIF
  END
END

b2
  AFTER ENTRY
    IF (qt=2) THEN
      GOTO next
    ENDIF
  END
END

b3
  AFTER ENTRY
    IF (qt=3) THEN
      GOTO next
    ENDIF
  END
END

b4
  AFTER ENTRY
    IF (qt=4) THEN
      GOTO next
    ENDIF
  END
END

b5
  AFTER ENTRY
    IF (qt=5) THEN
      GOTO next
    ENDIF
  END
END

b6
  AFTER ENTRY
    IF (qt=6) THEN
      GOTO next
    ENDIF
  END
END

b7
  AFTER ENTRY
    IF (qt=7) THEN
      GOTO next
    ENDIF
  END
END

b8
  AFTER ENTRY
    IF (qt=8) THEN
      GOTO next
    ENDIF
  END
END

b9
  AFTER ENTRY
    IF (qt=9) THEN
      GOTO next
    ENDIF
  END
END

>录入效果

3.epidata跳转中,有一种情况是,无论输入什么,无条件跳转至另外一个变量。例如下面变量v1b中5和6,不管输入什么都需要跳转至next。实现该功能,有2个方法,1)autojump,跳转会在离开该变量时执行。令autojump后面可以使用end和write,如下。2)goto,需要在after entry后面使用。详细情况参考下面qes和chk代码。

AUTOJUMP [name of field to jump to] 
AUTOJUMP END 
AUTOJUMP WRITE 
AUTOJUMP SKIPNEXTFIELD  
*使用 AUTOJUMP SKIPNEXTFIELD 命令,当完成当前变量的录入后,
*程序会越过下一个变量,直接跳转到其后的变量。

>qes代码:

{v1} 是否进行实验室复核: # 1=是 2=否
    {v1a} 如是,请注明实验室名称: ____________________
    {v1b} 镜检复核结果:#
        1=阴性 
        2=间日疟 
        3=恶性疟 
        4=三日疟 
        5=卵形疟 ({test} 请注明:____________________)
        6=混合感染({v1b1} 请注明: ____________________)
        7=其他({v1b2} 请注明: ____________________)
{next} 下一题: #

>chk代码:

v1
  LEGAL
    1
    2
  END
  JUMPS
    2 next
  END
  MUSTENTER
END

v1b
  RANGE 1 7
  JUMPS
    1 next
    2 next
    3 next
    4 next
    6 v1b1
    7 v1b2
  END
  MUSTENTER
END

test
  AFTER ENTRY
    GOTO next
  END
END

v1b1
  AUTOJUMP NEXT
END

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值