2014年8月

关于本文档

本文档是基于流行病学动态数据采集平台20140731版编写,但是软件本身是随着用户需求的而不断改变的,在阅读此文档的过程中如果发现文档的介绍和软件本身存在差异,请以软件本身的实现为准,并请您立即获取本文档的最新版本,以便获得最新的软件的相关信息及教程。

 

版本

作者

备注

V1.0

彭志勇

文档初始版本

V1.1

彭志勇

针对201411月版程序同步修改文档

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


目录

第一部分 概览... 1

1.      流行病学动态数据采集平台介绍... 2

1.1.                系统简介... 2

1.2.                系统模块组成... 3

1.2.1.       服务器端系统... 3

1.2.2.       桌面离线录入程序... 3

1.2.3.       移动离线录入程序... 4

1.3.                云计算与流行病学动态数据采集平台... 5

1.3.1.       什么是云计算... 5

1.3.2.       SaaS和流行病学动态数据采集平台... 6

1.3.3.       PaaS和流行病学动态数据采集平台... 6

1.3.4.       IaaS和流行病学动态数据采集平台... 6

1.4.                流行病学动态数据采集平台未来展望... 7

第二部分 简明用户教程... 8

2.      调查问卷设计和管理... 9

2.1.                登录问卷定制平台... 9

2.1.1.       登录调查问卷定制平台... 9

2.1.2.       切换到问卷定制主菜单... 10

2.2.                调查问卷模板设计... 10

2.2.1.       新增调查问卷模板... 11

2.2.2.       修改已有的调查问卷模板... 12

2.2.3.       设置调查问卷模板属性... 12

2.2.4.       控件相关操作及说明... 14

2.2.5.       调查问卷模板预览... 29

2.3.                添加逻辑校验/跳转脚本... 29

2.3.1.       编辑脚本... 29

2.3.2.       Epidata脚本的兼容... 30

2.3.3.       新增特性... 31

2.3.4.       脚本示例... 32

2.4.                生成调查问卷... 37

2.4.1.       新建调查问卷... 37

2.4.2.       导入Epidata问卷... 38

2.4.3.       导入调查问卷... 38

2.5.                组件设计和管理... 39

2.5.1.       组件设计... 39

2.5.2.       插入组件... 40

3.      调查任务发布与管理... 42

3.1.                切换到调查任务管理菜单... 42

3.2.                发布调查任务... 42

3.3.                浏览调查任务... 44

3.4.                修改调查任务... 44

3.5.                访问、登录调查任务... 45

3.6.                调查任务管理... 46

3.6.1.       登录调查任务管理菜单... 47

3.6.2.       用户管理... 47

3.6.3.       用户组管理... 50

4.      数据录入用户操作... 53

4.1.                登录调查任务录入数据... 53

4.1.1.       登录调查任务... 53

4.1.2.       录入数据... 54

4.1.3.       浏览数据... 54

4.2.                直接填写问卷... 56

4.2.1.       发布问卷录入地址... 56

4.2.2.       访问网址录入... 58

4.3.                其他... 59

4.3.1.       系统讨论区... 59

4.3.2.       系统公告栏... 61

4.3.3.       修改密码... 62

4.3.4.       录入超时设置... 63

5.      数据统计定制与查看... 64

5.1.                登录统计分析菜单... 64

5.2.                统计报表定制... 65

5.3.                统计报表授权... 66

5.4.                查看统计结果... 67

5.5.                数据表对比... 67

第三部分 参考手册... 69

6.      通用信息... 70

6.1.                系统兼容性... 70

6.1.1.       浏览器兼容性... 70

6.1.2.       屏幕分辨率兼容性... 70

6.1.3.       网络兼容性... 71

6.2.                系统通用特性... 71

6.2.1.       控件及其操作方法... 71

6.2.2.       键盘事件及导航... 83

6.2.3.       分页浏览列表和导出excel 84

6.3.                系统通用功能... 85

6.3.1.       系统登录... 85

6.3.2.       用户注册... 85

6.3.3.       调查任务主菜单... 87

6.3.4.       用户管理... 87

6.3.5.       用户组管理... 90

6.3.6.       简单报表定制... 92

6.3.7.       数据表比对... 95

7.      控件定制属性参考... 97

7.1.                问卷类属性... 97

7.1.1.       调查问卷模板属性... 97

7.1.2.       组件属性... 98

7.1.3.       数据字典属性... 98

7.2.                控件属性... 99

7.2.1.       通用属性... 99

7.2.2.       各控件特性属性... 100

8.      脚本参考... 104

8.1.                基本概念... 104

8.1.1.       基本数据类型... 104

8.1.2.       命令... 105

8.1.3.       表达式... 105

8.1.4.       函数... 105

8.1.5.       操作符... 106

8.1.6.       变量... 106

8.1.7.       事件... 106

8.2.                命令参考... 106

8.2.1.       ADDRECORD.. 106

8.2.2.       ASSERT. 107

8.2.3.       AUTOJUMP. 107

8.2.4.       BEEP. 107

8.2.5.       CLEAR. 108

8.2.6.       COPYTOCLIPBOARD.. 108

8.2.7.       DEFINE. 108

8.2.8.       DISABLE. 109

8.2.9.       ENABLE. 109

8.2.10.              EXIT. 109

8.2.11.              GOTO.. 109

8.2.12.              HELP. 110

8.2.13.              HIDE. 110

8.2.14.              HIDEROW... 110

8.2.15.              HIDEROWS. 111

8.2.16.              HIDES. 111

8.2.17.              IF…THEN.. 112

8.2.18.              JUMPS. 113

8.2.19.              LET. 113

8.2.20.              RANGE. 113

8.2.21.              REMOVERECORD.. 114

8.2.22.              REPEAT. 114

8.2.23.              UNHIDE. 114

8.2.24.              UNHIDEROW... 115

8.2.25.              其他Epidata命令... 115

8.3.                函数参考... 116

8.3.1.       算术函数... 116

8.3.2.       字符串函数... 118

8.3.3.       日期和时间函数... 120

8.3.4.       其它函数... 121

8.3.5.       不支持的Epidata函数... 122

8.4.                操作符参考... 122

8.4.1.       算术运算符... 122

8.4.2.       逻辑运算符... 123

8.4.3.       关系运算符... 123

8.5.                内置变量... 123

8.5.1.       RESULTLETTERRESULTVALUE. 123

8.5.2.       用户相关信息... 124

8.5.3.       其他信息... 124

9.      调查问卷定制管理模块... 125

9.1.                定制管理... 125

9.1.1.       调查问卷管理... 125

9.1.2.       调查问卷模板管理... 127

9.1.3.       组件管理... 128

9.2.                发布管理... 129

9.2.1.       调查任务管理... 129

9.3.                系统管理... 133

9.3.1.       数据视图管理... 133

9.3.2.       系统字典管理... 135

9.3.3.       系统公告管理... 136

第四部分 附录... 139

10.                      手动编写问卷... 140

11.                      数据库相关信息... 141

12.                      离线录入工具... 142

12.1.             Windows离线客户端使用说明... 142

12.1.1.              运行程序... 142

12.1.2.              下载调查任务... 143

12.1.3.              录入数据... 143

12.1.4.              上传数据... 143

12.1.5.              删除调查任务... 143

12.2.             安卓离线客户端使用说明... 144

12.2.1.              安装... 144

12.2.2.              使用... 144

12.2.3.              数据录入和浏览... 146

 

 

 


第一部分 概览


 

1.      流行病学动态数据采集平台介绍

1.1.  系统简介

流行病学动态数据采集平台是一个问卷调查系统及系统运行的云服务环境,该系统提供了问卷定制设计、问卷发布管理,问卷数据的在线离线录入、问卷数据管理统计,功能和数据的权限管理。

1 系统功能概览

 

流行病学动态数据采集平台完全基于Web(网页)设计,提供功能完善的问卷表单设计器,达到所见即所得的良好用户体验;可重用的问卷组件、模板让繁琐重复的问卷设计变得轻松简单。

 

针对在实际应用中每次调查会涉及多个调查问卷的实际需要,开创性的提出了调查任务管理的功能:调查任务包含了每次调查的全部调查问卷及其数据。

 

适应于多级、每级多用户的实际应用场景,提供了基于角色的访问控制(RBAC)权限控制,系统为每个调查任务的所有调查问卷及其他辅助功能都提供了唯一的登录、访问地址。

 

此外,在系统中还提供了共享数据字典的管理功能,如针对地区编码、民族等国家标准化数据,可以在系统中预先建立统一的数据字典,并且由专人维护数据。普通用户在定制问卷时只需要使用系统内预置的数据字典,从而有效地保证了问卷数据对标准的兼容,同时极大的减少了问卷定制用户在问卷内维护数据字典的工作量。

 

针对标准字典每年可能更新的情况,系统提供了数据视图(版本)的功能。在用户定制问卷时,可以选择问卷绑定于具体的数据字典,也可以选择绑定到某一个数据视图。当用户将数据绑定某一个数据视图时,可以在调查任务的发布时指定和某一具体数据字典绑定。如未在调查任务时绑定,则默认使用使用系统级的数据视图绑定。系统默认的数据视图绑定可以由系统管理员随时指定。

 

为适应于专业调查问卷中的跳转等复杂的逻辑控制,在系统中内置了专门用于数据校验、跳转、隐藏/显示等逻辑控制的脚本,该脚本的设计基于业内流行的Epidata软件(http://www.epidata.dk/)内置的脚本,针对Web系统的特点进行了扩展和增强。更多信息请参见本文档相关章节。

 

流行病学动态数据采集平台不仅提供了在线的数据录入界面,还提供了适用于台式计算机和笔记本同时兼容Windows/Linux等多种操作系统的离线数据录入程序,针对安卓等智能手机和平板也提供了相应的离线录入应用。利用离线录入工具,问卷录入用户可以在联网的情况下先将调查任务的问卷下载到本地计算机和移动设备上,在离线的情况下进行数据的录入,在连线的情况下完成数据的上传。更多信息请参见本文档相关章节。

 

信息技术对流行病学调查的影响和价值日益凸显,流行病学动态数据采集平台作为公共卫生信息化的产物,适用于公共卫生领域的各项业务,如现场流行病学调查、卫生应急监测、快速风险评估调查、疾病监测、现况调查和队列研究等。在系统中针对中国的公共卫生调查的特点,针对性的提供了地区控件、地图坐标等控件,并且提供了对疾病预防控制系统(直报系统)兼容的地区编码、统计局发布的地区编码等标准的兼容实现。

1.2.  系统模块组成

流行病学动态数据采集平台当前主要包含了服务器端系统、桌面离线录入程序、移动离线录入程序三大模块。

1.2.1.   服务器端系统

流行病学动态数据采集平台服务器端系统是流行病学动态数据采集平台的核心功能组件。调查问卷的定制和管理、调查任务的发布和管理、系统用户权限管理和授权以及系统数据字典管理等系统维护功能都只能在这部分程序中访问。用户在访问系统时,需要正确的录入服务器端系统部署的IP地址或域名。

 

服务器端软件提供了基于Web的访问:系统采用标准的HTMLJavaScriptCSS等技术构建,用户可以使用当前的任意一种主流浏览器(IEFirefoxChrome等)访问服务器端软件部署的地址即可访问系统,操作相关功能。

 

服务器端系统的实现采用了成熟的开源技术和产品,软件的构建和发布符合J2EE工业标准。服务器端系统运行使用的主要第三方软件都是免费的开源产品:

Ø  MySQL数据库(http://www.mysql.com/),运行数据库服务。

Ø  Apache Tomcathttp://tomcat.apache.org/),运行服务器端应用软件。

1.2.2.   桌面离线录入程序

桌面离线录入程序提供了在桌面计算机和笔记本上在网络断开的情况下进行调查数据的录入并且暂存到本地的功能,在网络连通的情况下可以将暂存到本地的数据上传到部署好的服务器系统中。桌面离线录入程序特别适用于在调查现场进行数据的采集和录入,从而极大的提高系统的适用范围,并切实解决在网络不通畅的情况下进行数据录入的问题。需要注意的是,对于微软公司的Surface平板电脑等运行桌面系统的平板电脑,只能使用桌面离线录入程序进行数据的离线录入。

 

桌面离线录入程序采用Java技术构建,从而能够在WindowsLinux等操作系统上正确运行。并且在桌面离线录入程序的数据录入过程中,用户只能录入被授予了访问权限的调查问卷,调查问卷的表单布局和样式同用户设计时基本一致,数据校验以及跳转控制等控制逻辑也同用户设计时完全一致,从而保证离线录入数据质量。

 

在使用桌面离线录入程序时,用户需要在联网的情况下先从服务器端下载回要录入数据的调查任务的信息;待到需要进行数据录入时,直接打开已经下载调查任务中的具体的调查问卷进行数据的录入,并且将数据暂存到本地计算机上;在调查问卷的数据录入后,在网络连通的情况下,用户可以直接将数据上传到服务器上,以便其他用户在服务器端浏览到数据。

 

2 桌面离线录入程序界面

 

1.2.3.   移动离线录入程序

同桌面离线录入程序类似,移动离线录入程序主要用于在智能手机及平板电脑上进行调查问卷数据的离线录入。

 

当前仅提供了运行于安卓系统之上的应用,暂未提供iOS系统的支持。

3 安卓离线录入程序界面

1.3.  云计算与流行病学动态数据采集平台

1.3.1.   什么是云计算

云计算(英语:Cloud Computing),是一种基于互联网的计算方式,通过这种方式,共享的软硬件资源和信息可以按需求提供给计算机和其他设备。

 

云计算是继1980年代大型计算机到客户端-服务器的大转变之后的又一种巨变。用户不再需要了解“云”中基础设施的细节,不必具有相应的专业知识,也无需直接进行控制。云计算描述了一种基于互联网的新的IT服务增加、使用和交付模式,通常涉及通过互联网来提供动态易扩展而且经常是虚拟化的资源。

 

美国国家标准和技术研究院的云计算定义中明确了三种服务模式:

l  软件即服务(SaaS):消费者使用应用程序,但并不掌控操作系统、硬件或运作的网络基础架构。是一种服务观念的基础,软件服务供应商,以租赁的概念提供客户服务,而非购买,比较常见的模式是提供一组账号密码。例如:Microsoft CRMSalesforce.com

l  平台即服务(PaaS):消费者使用主机操作应用程序。消费者掌控运作应用程序的环境(也拥有主机部分掌控权),但并不掌控操作系统、硬件或运作的网络基础架构。平台通常是应用程序基础架构。例如:Google App Engine

l  基础架构即服务(IaaS):消费者使用“基础计算资源”,如处理能力、存储空间、网络组件或中间件。消费者能掌控操作系统、存储空间、已部署的应用程序及网络组件(如防火墙、负载平衡器等),但并不掌控云基础架构。例如:Amazon AWSRackspace

 

关于云计算的详细介绍,请参见维基百科上的云计算词条的详细信息介绍:http://zh.wikipedia.org/zh-cn/%E9%9B%B2%E7%AB%AF%E9%81%8B%E7%AE%97

 

在本文中,所有涉及到云计算的介绍,都是与服务器端系统运行及部署有关,桌面离线录入程序和移动离线录入程序在实际的使用中和云计算无直接关系。

1.3.2.   SaaS和流行病学动态数据采集平台

按照流行病学动态数据采集平台的最初涉及理念,流行病学动态数据采集平台本身是作为一个SaaS平台来设计:问卷定制用户是该平台的主要用户。可以将流行病学动态数据采集平台服务器端软件部署成一个支持多用户进行问卷定制管理的SaaS平台。

 

问卷定制用户使用账号密码通过浏览器登录流行病学动态数据采集平台即可进行调查问卷设计、调查任务的发布和管理;而在调查任务发布以后,调查问卷数据的录入用户也直接使用用户名和密码,直接通过浏览器登录系统进行数据的录入;在数据录入完成后,问卷定制用户可以通过浏览器在线浏览录入的问卷数据,并且可以对数据进行统计分析。

 

在整个使用过程中,任何用户都不需要关心操作系统、硬件或运作的网络基础架构等技术性细节。并且任一调查任务的数据都和其他的调查任务的数据隔离,每一个调查任务都让用户使用起来感觉是在用单独的一个数据录入系统。在实际的应用中,当整个流行病学动态数据采集平台的用户和数据量达到一定规模时,需要有专门的运营维护团队对流行病学动态数据采集平台本身的系统部署、硬件及网络进行管理和维护,系统本身也需要不断调整以适应实际应用中的扩展性需要。

1.3.3.   PaaS和流行病学动态数据采集平台

流行病学动态数据采集平台是基于标准构建的应用软件,支持部署在任何支持MySQL访问的支持JavaPaaS平台上。PaaS和传统的网站空间租用类似,但提供的功能更多,扩展性更强,可以很容易的扩大系统的规模。在减小用户管理的难度的前提下,可以更轻松的实现支持更多人访问系统,在系统内保存更多数据。

 

随着云计算大潮的兴起,在中国范围内涌现了一大批PaaS服务,如新浪、百度等公司等都提供了支持JavaMySQL数据库PaaS平台。流行病学动态数据采集平台已经完美运行在百度应用引擎(简称BAE: http://developer.baidu.com/cloud/rt)之上。借助百度的强大的云计算能力,用户可以轻松的将系统部署在百度云计算的PaaS环境中,并且轻松实现系统的管理、维护和扩容。

1.3.4.   IaaS和流行病学动态数据采集平台

通常情况下对用户来说IaaS就是一个虚拟主机。用户可以在虚拟云主机上安装MySQL数据库和Tomcat,从而将流行病学动态数据采集平台部署在其中运行。相比于传统的服务器租用模式,IaaS省去了用户管理硬件和网络环境的麻烦,但是用户也需要管理操作系统系统等软件,从而也需要用户具有更多的计算机技能。

 

对流行病学动态数据采集平台来说,和PaaS模式相比,在IaaS模式下用户一般需要付出更多的努力和工作,获得了更少结果:部署的扩展性更差。因此,如果用户需要在云计算的环境中部署流行病学动态数据采集平台,建议用户采用PaaS的方式。

1.4.  流行病学动态数据采集平台未来展望

为了保持流行病学动态数据采集平台的生命力,我们需要不断对系统进行改进才能保证系统能更好的满足用户的实际需要。同时在当今世界各种新技术都在不断的产生,各种需求也在不停的涌现,我们需要对系统的各种要求进行取舍,才能给绝大部分用户带去更好的体验。如果您有任何新的想法,欢迎您发送邮件到freedap@163.com和我们联系。

 

当前系统面临的最迫切的需求可以归纳为以下几个方面:

l  更好的用户界面体验:预置简洁美观的问卷样式,增强界面的定制性。

l  提高组件的可重用性:增加控件和选项,让问卷定制和设计轻松简单。

l  增强脚本逻辑控制:为高级用户提供复杂准确的控制能力。

l  更强的统计功能:支持百分率的计算,支持统计图形的生成。

l  调查问卷元数据定义和数据共享:系统可以在多级机构同时部署一套调查任务,下级机构的用户可以对上级用户下发的问卷增加自定义数据项;下级用户收到数据后,可以自动上级用户需要的数据提交到上级用户的服务器中。

 

如果您有任何关于系统或者调查问卷的想法,欢迎您发送邮件到freedap@163.com和我们联系。


 

第二部分 简明用户教程

使用流行病学动态数据采集平台进行问卷调查紧紧围绕着四个步骤:

 

设计 –> 发布 –> 录入 –> 统计

 

典型的操作流程如图4所示,问卷设计用户登录系统问卷定制管理模块设计问卷模板,将设计好的模板生成调查问卷并将问卷发布为调查任务,然后为调查任务分配用户;数据录入用户登录系统录入问卷数据;调查完成后统计问卷结果。

 

4 标准问卷调查流程

 

在本文按照功能相关性将分为调查问卷设计和管理、调查任务发布和管理、问卷数据录入、问卷结果统计四个部分来分别进行讲解。


 

2.      调查问卷设计和管理

流行病学动态数据采集平台作为一个专业的调查问卷系统,为用户提供了功能完善的在线问卷设计器。由于用户在日常设计的调查问卷之间在内容和逻辑上存在较多的关联和相似之处,系统为用户提供了组件管理、调查问卷模板管理和调查问卷管理等功能。

2.1.  登录问卷定制平台

在流行病学动态数据采集平台中,调查问卷的设计相关的功能都包含在服务器端系统中。在系统中将调查问卷设计相关的功能、调查任务发布功能及其他系统基础数据管理等功能打包在一起,称作调查问卷定制平台。

 

2.1.1.   登录调查问卷定制平台

用户需要先登录调查问卷定制平台,才能执行问卷设计相关的操作。调查问卷定制平台的登录地址为http://server/dap/ http://server/dap/task/shell/login。其中server是系统部署的服务器域名或IP地址。例如:

http://eddc.chinacdc.cn/dap/

5 调查问卷定制平台登录界面

2.1.2.   切换到问卷定制主菜单

用户登录到调查问卷定制平台后,默认打开的是调查任务发布管理主菜单,此时需要点击顶部工具条上【定制管理】菜单,将菜单区切换到问卷定制主菜单,如 6所示。

6 问卷定制主菜单界面

 

2.2.  调查问卷模板设计

如果用户经常从事某专业领域的相关调查,通常情况下每次使用的调查问卷在前一次调查问卷的基础上做一些调整即可。在流行病学动态数据采集平台中,调查问卷模板即是解决此类问题的手段。例如去年为某传染病调查设计了问卷模板,根据模板生成了当年的调查问卷,今年调查时增加了新的调查项目,只需修改模板后生成今年新的调查问卷即可。

 

与最终用于调查的问卷不同,用户随时都可以对调查问卷模板进行修改。

 

用户在进行调查问卷模板设计时,主要操作在调查问卷模板设计界面进行,如 7所示。调查问卷模板设计界面主要可分为三部分:

1)              控件列表区域:在此区域中列出了所有系统可用的控件。用户通过点击控件列表区域的按钮向当前设计的调查问卷中加入新的控件。

2)              调查问卷预览区:当前设计调查问卷最终的布局和样式可以在此区域中实时查看。用户也可以通过在区域中点击对应的控件来选中此控件然后编辑其属性。

3)              属性设置区域:在当前设计调查问卷中选中控件的属性在此区域中展示。如果当前未选中控件,则默认显示整个调查问卷模板的属性。

7 调查问卷模板设计界面

2.2.1.   新增调查问卷模板

将用户界面切换到问卷定制主菜单,然后点击左侧菜单树中【新建调查问卷模板】,系统打开调查问卷模板设计界面。如果用户通过点击调查问卷模板设计界面中右上角的【保存】按钮将当前设计的调查问卷模板的最新状态保存到系统中。

 

8 新增调查问卷模板

2.2.2.   修改已有的调查问卷模板

将用户界面切换到问卷定制主菜单,然后点击左侧菜单树中【浏览调查问卷模板】,系统打开调查问卷模板浏览界面。

 

9 调查问卷模板浏览界面

在调查问卷浏览界面中,通过点击列表中每条模板中右侧的【操作】区域中的【修改】按钮,用户可以打开此调查问卷模板的编辑界面。

 

在调查问卷浏览界面中,用户可以上方的查询区域中输入查询条件,然后点击【查询】按钮来对列表中的数据进行筛选过滤。用户可以通过点击数据列表的标题栏对列表中的数据以顺序或逆序排序。

 

在调查问卷浏览界面中,通过点击列表中每条模板中右侧的【菜单】区域中的【删除】按钮,用户可以从系统中删除指定的调查问卷模板,如果模板属性未标识为“逻辑删除”则该操作彻底删除数据库中的信息。

2.2.3.   设置调查问卷模板属性

在用户执行【新建调查问卷模板】或者【修改调查问卷模板】操作后,在调查问卷设计界面中的属性设置区域中默认显示的调查问卷模板的属性。用户可以修改属性的值以设置调查问卷模板的各项属性。

 

在调查问卷设计界面中,左键点击调查问卷预览区中的当前设计问卷的标题栏,右侧属性设置区域即显示此调查问卷模板的属性。用户可以修改属性的值以设置调查问卷模板的各项属性。

 

10 调查问卷模板属性

 

通常情况下,用户需要编辑模板名和模板编号。模板主要属性如 1所示:


 

 

属性

属性说明

模板编号

该模板在数据库内部生成的数据库表的名字,请使用字母开头且只能包含字母、数字和下划线,最长40字符。请不要使用order\from等数据库的关键字。

模板名

模板的名字,如果生成调查问卷时未指定名字,则问卷的名字为“问卷模板”。

模板描述

对模板的说明性描述。

主键名

主键的显示名。系统将为每个模板自动生成一个主键,这个属性是确定该主键字段的显示名。

主键可查询

在数据浏览界面,显示将主键作为过滤条件

逻辑删除

删除的数据可以使用适当的工具或方法恢复出来。

允许的操作

在调查任务中,可以对该问卷进行的操作,包括新建、修改、删除、查看,打印、浏览和审核、暂存。

记录操作痕迹

在数据库中记录填写数据的用户ID、用户名和填写时间。

共享

是否将该模板共享给其他用户,只有共享的模板才能被其他用户看到和使用。

脚本

为模板设定整个调查问卷级别的用于逻辑校验和数据跳转的脚本。

1)快捷设定:控制数据的重复录入。

2)编辑脚本:添加脚本语句,实现问卷的质量控制。此处为问卷级别的脚本。

注意:“快捷设定”的设置会自动清空“编辑脚本”的脚本语句。如需将二者结合使用,请先设置“快捷设定”,然后在此基础上“编辑脚本”。

组合查询

在数据浏览界面,显示将组合查询条件作为过滤条件。点击“添加”按钮添加过滤条件,并选择过滤字段名。目前系统仅支持日期控件和地区编码控件的组合条件设置。

展示规则

针对每条数据在列表中的展示样式设置条件性的设定。当满足【行匹配规则】指定的条件要求时,该条数据则在列表中显示设定样式。行匹配规则是一个返回true/false的脚本表达式。行匹配规则可以为空,为空时则为所有数据的默认显示规则。

1 模板属性说明

2.2.4.   控件相关操作及说明

调查问卷由多个控件通过一定的关系组合而成。调查问卷的设计工作主要是对调查问卷的控件进行调整,主要操作包含添加、修改删除问卷内的控件,调整控件间的布局,设置控件的展示样式等。

 

按照能否包含其他控件做为其子控件,控件可以分为容器控件和非容器控件。在调查问卷设计时,如果在调查问卷中选中了容器控件,则新加的控件将作为该容器控件的子控件添加到调查问卷中。容器控件包括:矩阵容器,单行容器,多行容器,字表容器。

 

按照是否要保存数据录入用户的录入结果,控件可以分为数据控件和非数据控件。非数据控件只做辅助调查问卷的展示之用,不能在脚本中为辅助控件执行赋值等操作。

2.2.4.1.            添加控件

单击控件列表中的任一控件按钮,将为该调查问卷模板添加一个相应的新控件,控件的添加采用流式布局,具体的控件添加规则如下:

Ø  在用户未选中调查问卷模板中的控件时,新控件将插入到模板最后一行。

Ø  在用户选中了调查问卷模板中的容器控件时,则新加入的控件将加入到当前选中的容器控件中;

Ø  如果当前选中的控件非容器控件,但是包含在某个容器控件中时,则新控件为将加入到选中控件的容器控件中并且放置在选中的控件的后面。

Ø  如果当枪选中控件非容器控件,又未包含在容器控件中,则新控件将插入到模板并且放置在选中的控件的后面。。

 

需要注意,单选和多选控件在选中了其中某一选项时,再添加一个控件将会让新增的控件绑定在选中的选项上,并且新增的控件是选中的单选和多选控件的子控件。

2.2.4.2.            选中控件

在控件预览区域中,用户可以直接鼠标单击某一个具体控件,则可以直接选中该控件。被选中的控件在问卷预览区域中显示为蓝色区域,并且在右侧的属性设置区域会显示该选中控件的属性。用户可以通过编辑属性设置区域中的属性的值来达到定制的目的。完成属性的修改,最新的属性的值作用在当前问卷模板上并且在问卷预览区域中显示为最新的状态。

 

当选中了某个控件时,可以点击属性设置区域中上方的【选中父容器按钮】,将选中该控件的容器控件。对于矩阵容器、多行容器来说,其经常用于辅助进行问卷的布局操作,本身并不在问卷中显示出来,因此需要通过这种方式进行选中。

 

选中的控件在问卷预览区域中显示蓝色矩形区域。如果当前选中的控件是容器控件,则在包含其子控件在内的所有控件都是显示为蓝色矩形区域。

2.2.4.3.            删除控件

当选中了某个控件时,可以点击属性设置区域中上方的【删除按钮】,将会从当前调查问卷模板中删除此选中的控件。

 

如果选中的控件为容器控件,则其所有的子控件也将被从调查问卷模板中删除。

2.2.4.4.            位置调整

11 系统控件示例

 

Error! Reference source not found.中蓝色区域表示当前选中的控件。

 

Error! Reference source not found.红色区域所示为控件相关操作按钮:

1.         上移按钮:将控件上移,和其上一个控件互相交换位置。如果该控件为调查问卷模板或者容器控件的第一个控件,则无操作。

2.         下移按钮:将控件下移,和其下一个控件互相交换位置。如果该控件为调查问卷模板或者容器控件的最后一个控件,则无操作。

3.         删除按钮:删除当前选中的控件,并且选中该控件的容器控件。如果该控件无容器控件,则显示调查问卷模板的属性信息。

4.         选中父容器按钮:选中当前选中控件的容器控件。如果该控件无容器控件则无操作。

 

2.2.4.5.            拖拽和复制/粘贴

在问卷模板设计器中,支持鼠标的拖拽操作。用户在控件上按下鼠标左键并且将鼠标滑动到目标区域上再释放鼠标时,如果目标控件不是容器控件,被拖拽的控件将会被移动到目标控件的后面;如果目标控件是容器控件,则被拖拽的控件将会附加到目标控件中。如果被拖拽的控件是容器控件,则其所有子控件都会随该控件一起移动。

 

在执行鼠标拖拽操作时,按照键盘CTRL键不放,则除去上段所描述的操作外,被拖拽的控件并不会在原来的位置移除。实际的操作是复制了一份被拖拽的控件到目标处释放。需要注意,由于在一个调查问卷内任意数据控件的ID不能重复,因此执行此操作后需要额外修改复制出的控件的属性。

 

在问卷模板设计器中,当前支持复制和粘贴操作。在选中了控件,在问卷预览区域按下CTRL+C键,被选中的控件的定义被复制到系统剪切板中。再按下CTRL+V键,会将系统剪切板中的控件的定义插入到当前选中的控件处。需要注意,由于在一个调查问卷内任意数据控件的ID不能重复,因此执行此操作后需要额外修改复制出的控件的属性。

2.2.4.6.            操作回滚

在问卷模板设计器中,按下CTRL+Z键,问卷模板将回滚最近一次对调查问卷模板结构的修改。

 

需要注意,由于受浏览器的限制,系统只支持回滚对调查问卷模板结构操作,即只有对调查问卷模板执行了插入了新的控件、删除了已有的控件、对控件的位置进行了调整的操作才能被回滚。对问卷属性和控件属性的修改不会被回滚。拖拽和粘贴操作带来的修改可以被回滚。

2.2.4.7.            通用属性

在本段中列出系统中所有的比较常用的控件通用属性;需要注意并不是所有的控件都有这些属性;另外,即便有些控件拥有以下属性,但是在添加到容器控件内则会隐藏部分属性。更多信息请参见第三部分。

 

属性

属性说明

字段编号

该模板在数据库内部生成的数据库表的名字,请使用字母开头且只能包含字母、数字和下划线,最长40字符。请不要使用order\from等数据库的关键字。

在脚本中可以直接操作此属性。

显示名

控件显示的名字,填写问卷时字段显示的名字和导出excel的列名等。

样式

设置控件在列表、录入表单等处的字体大小、颜色等样式

显示文本

在默认的问卷布局中,在数据录入左侧显示该控件的显示名。如果不勾选则直接显示为数据录入控件并不在左侧显示控件的显示名。

值可以空

是否必填,不勾选为必填字段

查询字段

如勾选,则在数据管理界面在此控件作为数据过滤条件。

是否列表字段

是否在列表列出,勾选为列出

列表宽度

如在数据列表中列出,则列表显示的宽度。支持录入百分比,如”10%”,如不带百分比则默认单位为像素。

值唯一

勾选则不允许重复录入。

允许编辑

勾选则控件为不可编辑状态

前置文本

在数据录入控件的前方显示的提示信息

后置文本

在数据录入控件的后方显示的提示信息

字典

该控件使用的数据字典,可以使用系统内预置的数据字典,也可以选取问卷内的设置好的问卷字典,也可以自行为该控件定义数据字典。

联动项目

为机构编码控件指定管理的地区控件的编号。

提示信息

在录入调查问卷数据时,当用户将鼠标防止到控件上时,系统弹出的提示信息。如果用户未设定,则默认提示控件名称。

脚本

1)快捷设定:控制数据的重复录入。

2)编辑脚本:添加脚本语句,实现问卷的质量控制。此处为控件级别的脚本。

注意:“快捷设定”的设置会自动清空“编辑脚本”的脚本语句。如需将二者结合使用,请先设置“快捷设定”,然后在此基础上“编辑脚本”。

2 控件通用属性概览

2.2.4.8.            控件一览

1)         文本标签

 

文本标签用作标识性信息。例如标题或某一部分说明性文字。点击“文本标签”控件,将其添加至问卷模板中,并设置该文本标签的属性,如 12所示。

 

单个文本标签最多能录入3000个字符,含格式化所需的额外的字符和显示图片等所需要的相关信息。超过一行的范围后,文本将自动换行。

 

12 文本标签预览

2)         文本框

文本框控件可用于自由文本信息的录入,展示效果如 13所示。

 

文本框控件支持设置为保密字段,除了数据录入者和调查任务管理员,其他人都不可见此信息。

 

13 文本框控件预览

3)         日期录入

日期录入控件用于录入年月日的日期,如 14所示。日期录入默认格式为“yyyy-MM-dd”,即“年--日”格式,其中yyyy代表年,MM代表月,dd代表日期,可以按照需要对顺序进行调整,也可以将分隔符替换成其他字符,比如反斜杠(/):yyyy/MM/dd

14 日期录入控件预览

 

在填写问卷中的日期时,可以在前面的文本框中输入日期,如未输入分隔符,系统会自动按照设置的格式设置显示,如输入20140801,系统会会自动格式化为2014-08-01;也可以通过点击日期控件弹出日期选择框进行选择录入,如 15所示。

15 日期录入控件选择录入界面

4)         下拉选择

下拉选择控件用于在一组给定的数据字典的选择录入,预览如 16所示。

16 下拉选择控件预览

 

必须为下拉选择控件指定一个数据字典,可以选择选择自定义字典,并在属性设置区域下方定义该字典;也可以选择一个问卷内已经定义好的字典,或者系统内预置的字典。如果未设置字典,但是在【联动项目】属性内填入问卷内的多项选择或者列表选择控件的字段编号,则在录入问卷时,随着指定的联动控件选中项的数量的变化,下拉选择控件内的选项数会显示所指定联动控件中的选中项。

 

在问卷中点击下拉选择框,出现下拉选择项,如 17所示

17 下拉选择控件选择录入界面

 

5)         是否选择

是否选择控件用于录入只有是或者否两种状态的变量的录入,预览如 18所示。

 

18 是否选择控件预览

 

是否选择录入数据后,保存值为“Y”或“N”,选中用“Y”表示,未选中用“N”表示。

 

在属性设置中,“选中时显示”和“未选中时显示”列出了当前问卷内已有的所有控件,可以轻松帮用户实现显示和隐藏其它控件的功能,系统会自动将用户指定的显示或者隐藏其他控件转换成该控件相关的脚本。如果用户在“选中时显示”勾选了某控件,则该控件仅在该是否选择录入框选中时显示出来,否则处于不可显示状态;“未选中时显示”的选项的作用与此相反。

 

6)         多项选择

多项选择控件用于在一个变量内可以选中多个选项的数据的录入,预览如 19所示。

 

19 多项录入控件预览

 

         必须为多项选择控件其指定一个数据字典,可以选择选择自定义字典,并在属性设置区域下方定义该字典;也可以选择一个问卷内已经定义好的字典,或者系统内预置的字典。如果未设置字典,但是在【联动项目】属性内填入问卷内的多项选择或者列表选择控件的字段编号,则在录入问卷时,随着指定的联动控件选中项的数量发生的变化,该多项选择控件的选项数会显示所有指定联动控件中的选中项。

 

         可以为多项选择控件设置属性【每行选项数】,默认为0时在一行内显示所有的选项。如果数字大于0时,控件会转换为多行显示,每行显示指定个数的选项数。如果指定每行选项数为1,则多项选项显示为竖直显示出所有选项。 20为设置显示每行显示6个选项的效果。

 

20 每行6选项的多项选择控件

 

7)         单项选择

和下拉选择控件类似,单项选择用于在一组给定的数据字典的选择录入,预览如 21所示。

 

21 单项选择控件预览

 

与传统的单项选择控件不同的是,在流行病学动态数据采集平台中,如果一个选项已经被选中,那么再次点击此选项将取消选中选项。

 

必须为单项选择控件其指定一个数据字典,可以选择选择自定义字典,并在属性设置区域下方定义该字典;也可以选择一个问卷内已经定义好的字典,或者系统内预置的字典。如果未设置字典,但是在【联动项目】属性内填入问卷内的多项选择或者列表选择控件的字段编号,则在录入问卷时,随着指定的联动控件选中项的数量发生的变化,该单项选择控件的选项数会显示所有指定联动控件的选中项。

 

可以为单项选择控件设置属性【每行选项数】,默认为0时在一行内显示所有的选项。如果数字大于0时,控件会转换为多行显示,每行显示指定个数的选项数。如果指定每行选项数为1,则单项选项显示为竖直显示出所有选项。 22为设置显示每行显示6个选项的效果。

 

22 每行显示6选项的单项选择控件

8)         列表选择

和多项选择控件类似,在一个变量内可以选中多个选项的数据的录入,还可以对选中的选项进行排序,预览 23如所示。

23 列表选择控件预览

        

必须为列表选择控件其指定一个数据字典,可以选择选择自定义字典,并在属性设置区域下方定义该字典;也可以选择一个问卷内已经定义好的字典,或者系统内预置的字典。如果未设置字典,但是在【联动项目】属性内填入问卷内的多项选择或者列表选择控件的字段编号,则在录入问卷时,随着指定的联动控件选中项的数量发生的变化,该列表选择控件的选项数会显示所有指定联动控件的选中项。

 

如果该列表选择控件被指定为其他的下拉选择、单项选择、多项选择,列表选择控件的联动项目,则该控件排序后的选中选项会作用于目标控件。

 

9)         文件上传

文件上传控件用于数据填写用户上传图片等文件到系统中,预览如 24所示。

 

24 文件上传控件预览

 

用户在填写问卷时,点击选择按钮则弹出文件选择界面,如所示。在用户保存整个问卷的数据时,文件才会被上传保存到系统中。如果用户已经上传过文件,文件上传控件会显示出已经上传的文件名。可以点击【清空】按钮清空文件选中状态。

 

25 文件选择界面

 

用户在浏览、查看数据时可以下载用户上传的文件。在导出excel时只能导出上传的文件的文件名。

 

10)     地区编码

地区编码控件适用于中国疾病预防控制中心发布的8位全国到乡镇的地区编码的数据的录入,或者是国家统计局发布的12位到村的区划编码的录入,预览如 26所示。

 

26 地区编码控件预览

 

 

         地区编码控件默认和用户本身的地区编码绑定,默认显示为用户本身所在的地区编码级别。如果设置地区编码控件为【受权限控制】,则在用户默认只能查看用户所在地区内的全部数据。如省级用户默认只能查看其本省内的数据。

        

地区编码控件在录入时默认显示用户本身的地区,可以通过“上级”和“下级”按钮对地区选择进行导航选择。当在地区编码的下拉框中选中第一项时,可以通过点击“上级”按钮让下拉选择框内加载其上级地区内的所有编码,比如第一项是南京市时,点击“上级”按钮后下拉选择框内加载为江苏省和所有江苏省所辖市的编码。当在地区编码的下拉框中选中非第一项时,可以通过点击“下级”按钮让下拉选择框内加载其选中的地区及其下级地区的所有编码,比如选中南京市时,点击“下级”按钮后下拉选择框内加载为南京市和南京市的区县的编码。

 

11)     机构编码

机构编码控件用于录入中国疾病预防控制中心发布的全国卫生机构编码,该控件必须和地区编码控件绑定使用,预览如 27所示。

27 机构录入控件预览

         必须在【联动项目】属性内输入与之关联的地区编码控件的字段编号。在录入数据时,在指定的地区编码控件发生变化时,该机构编码构控件列出的机构列表会随之发生变化。

 

如果该控件被设置为受权限控制的控件,且该用户被指定了所属机构,则该框将默认显示为用户的所属机构,否则用户可以主动选择。默认情况下该控件的【受权限控制】属性为选中状态。如果该用户为直报用户且控件的【受权限控制】属性为选中状态,该控件显示为不可编辑状态,用户不能选择其他机构。

 

机构编码有一个重要的属性【显示模式】。显示模式有两个选项:

1)         按所属县区:指对机构进行属地化管理,管理单位是区县。用户在关联的地区控件中选择某一区县,就可以看到该区县的机构。如地区编码选择“北京市东城区”,则机构编码列表中显示了东城区的所有机构。

2)         按机构等级:按照用户选中的地区级别加载机构。目前系统支持国家级、省级、市级、县级和乡级五种单位级别。当用户选中南京市时,机构控件列出所有南京市内的市级机构的机构编码。

 

12)     地图坐标

地图坐标控件用于打开地图让用户选中具体点后记录其选中地点的经纬度坐标值。预览如 28所示。

28 地图坐标预览

 

         可以为地图坐标控件指定一个绑定的地区编码控件。当绑定了一个地区编码控件后,在用户新录入数据时,打开的地图界面会自动定位到选中的地区编码的中心点坐标。如果用户的浏览器支持HTML5的获取坐标的新特性,在新录入数据时,程序会尝试主动获取当前用户的坐标并在地图中打开。

        

         在定制问卷时,需要为地图控件选择所使用的在线地图服务的提供商,默认谷歌地图。推荐中国用户使用百度地图或者搜狗地图。

        

用户在录入数据时,可以通过点击【选择】按钮打开地图选择界面,如所示。在地图打开后,可以通过双击地图或者滚动滚轮来进行地图的缩放操作;要选中某处地点时,可以地图上单击鼠标左键,则如图29中展示的红色椭圆型标记会移动到用户选择的地点,并且地图会以此地点居中显示。用户选中完成后,需要点击地图中间上部的【确定】按钮,关闭地图并且传回选中地点的坐标。要清空已经选择的地图坐标,可以通过点击【清空】按钮执行清空。

 

29 打开地图示例

 

在数据录入时,值存储的方式采用逗号分隔的经纬度坐标值。需要注意,由于国家政策要求等原因,所获取的经纬度值和选中地点的实际经纬度具有一定的差异,请按照您选择的地图供应商进行修正。此差异不影响在地图中的回显。

 

13)     表间关联

表间关联控件用于关联两个调查问卷进行关联输入。此控件有两种模式:

1)         关联表模式:在表间关联控件的【关联实现类型】选择为“关联表”时启用。在此模式下,此控件是将当前记录与制定的其他调查表的记录关联,在此字段中记录的是被关联表的记录的唯一ID。预览效果如 30所示。

30 关联表模式示例

 

可以通过点击选择按钮弹出目标数据选择界面,然后点击列表中记录后面的选择按钮进行选择。如要清空现有数据,点击【清空】按钮即可清空。

 

使用表间关联控件时,必须为【关联问卷模板】指定被关联的调查问卷。在生成调查问卷进行预览时,选择按钮为不可选择状态。在发布调查任务时,必须在同调查任务内包含被关联的调查问卷模板生成的调查问卷。用户需要拥有被关联的调查问卷的浏览权限。

 

在此模式下,当前调查问卷的记录和被关联调查问卷的记录之间是一对一的关联关系。可以通过与主子表控件配合使用实现与被关联表的一对多的关联关系。

 

2)         主子表模式:在表间关联控件的【关联实现类型】选择为“主子表”时启用。在此模式下,当前调查问卷会将在【关联问卷模板】处指定的问卷模板嵌入到本调问卷内。在当前问卷内的字段内记录的是有其在被关联表里有多少条关联记录,而在被关联问卷里记录了当前问卷的记录的唯一ID。预览效果如 31所示。

 

31 主子表模式预览

 

使用主子表模式进行数据录入时,点击【打开】按钮时会先保存当前记录,然后系统界面会切换到被关联表的与当前数据关联的子表数据的列表。可以通过点击列表上的【新增】按钮来增加一条子表数据。子表数据录入完成后,点击返回按钮,界面返回到主表数据录入界面。

        

在执行导出excel任务时,子表数据会单独成为一个csv文件。只有和主表有关联的子表数据才会被导出。

 

14)     矩阵容器

矩阵容器是一个容器控件,并且不是一个数据控件。矩阵容器用于帮助用户在问卷内以二维表格的形式排布控件,提供良好的对齐和页面布局,预览效果如 32所示。

32 矩阵容器预览

 

在使用矩阵容器进行问卷设计时,子控件按照从左到右,从上到下的方式一次填充到矩阵容器的表格中。矩阵容器默认为显示行名和列名,可以设置其不显示行名和列名。可以往矩阵容器中放入文本标签控件以实现更复杂的文字显示效果。矩阵容器内可以嵌入其他容器控件从而实现更复杂的布局效果。

 

点击【列名】右面的【添加】按钮,可以新增一行显示。如果设置不显示列名,列的显示名项可以为空。列表宽度为该列显示的宽度,值可以为百分比或者绝对值,为数值时单位为像素。点击每列后面的【删除】按钮可以删除该列。行操作与列操作类似。无论设置是否显示行名/列名都必须通过增加行/列来设置矩阵的布局,行/列的显示名可以为空。

 

33 行列操作示例

 

15)     单行容器

 

单行容器是一个容器控件,并且不是一个数据控件。单行容器可以实现在一个控件显示区域内将其子控件显示在一起。如要注意,如果单行容器的子控件所需要展示空间超过了单行容器所拥有的展示空间的宽度,单行容器内的子控件也会折行显示。 34所示就是将2个文本框和一个下来选择用单行容器组织在一起。

 

34 单行容器示例

 

16)     多行容器

多行容器是一个容器控件,并且不是一个数据控件。多行容器允许将其子控件以多行显示的方式显示在该控件的展示区域。每行内的显示方式问卷默认的每行显示方式类似。 35所示时一个使用多行容器组合展示信息的示例。

 

35 多行容器示例

 

 

17)     子表控件

子表容器既是一个容器控件,又是一个数据控件。子表容器控件和表间关联控件的主子表模式类似,都是向当前问卷加入一个和当前记录是一对多关系的子表。使用子表控件时,所有的子控件都在一行内展示。

 

在设计问卷时,选中子表控件后,添加控件即可加入到子表控件中去。点击子控件的名称即可选中此子控件。效果如 36所示。

36 子表控件预览

 

在进行数据录入时,可以点击标题行右边的【添加】按钮新增一行数据。可以点击行后面的【删除】按钮删除指定行的数据。

 

37 子表控件数据录入示例

 

在导出excel时,子表的数据会单独生成一个csv文件。

2.2.5.   调查问卷模板预览

在“浏览调查问卷模板”界面,可以看到自己建立的问卷模板和其他人共享的问卷模板。点击“查看”按钮可以查看模板内容。用户只能修改自己建立的模板。点击“从此新建”可在其他人共享的问卷模板基础上创建一份新的模板。如需修改,点击“修改”按钮。

 

点击“预览”按钮可以查看问卷的实际运行效果。在调查问卷模板设计器中,为问卷编写的脚本都不会执行;而在问卷预览时,所有的脚本执行和问卷最终发布时一样运行,例如跳转、数值范围等命令。

2.3.  添加逻辑校验/跳转脚本

在流行病学动态数据采集平台中,支持Epidata软件中的CHK脚本,并且适应于web的特性,做了一些调整和增强。

 

限于篇幅的原因,我们在这里假设用户具有Epidata CHK脚本编辑的经验。如有用户需要了解,推荐阅读Epidata软件的帮助文件,或者《EpiData3.0使用手册》(2004北京大学公共卫生学院吕筠版)。详细信息请参见本文脚本索引部分。

2.3.1.   编辑脚本

在问卷的属性设置区或者控件的属性设置区(非数据控件不能设置脚本),会显示脚本设置功能,如 37所示。

38 脚本编辑功能

 

1)         快捷设定

快捷设置是为常用的脚本命令提供一个图形化的界面,供用户用于快速设定所需要的脚本。当前快捷设定在问卷级只支持【重复录入】选项,即REPEAT命令;在控件级别除【重复录入】选项外,还支持设置允许录入的最大值和最小值的范围,即RANGE命令。控件的快捷设定界面如 39所示。

39 问卷快捷设定界面

 

2)         脚本编辑

脚本编辑按钮直接打开一个脚本编辑器,供用户直接录入、修改问卷或者控件相关的脚本命令。脚本录入、编辑完成后,可以点击右上角的【X】按钮关闭脚本编辑器返回主界面。如需再次编辑脚本,直接再次点击【脚本编辑】按钮即可重新打开脚本编辑器并且将加载上次最终修改后的脚本。脚本编辑器界面如 40所示。

 

40 脚本编辑器

 

问卷的脚本可分为问卷级和控件级两类,在调查问卷和子表控件的属性编辑区中编辑的脚本即是问卷级脚本,控件级基本即在控件的属性编辑区域中点开编辑脚本设置的脚本。问卷级脚本的执行是填写问卷之前或数据保存之前。控件级脚本的执行是在鼠标选中该控件或离开该控件时。

 

问卷级脚本的编辑是在问卷模板的属性设置中,点击“编辑脚本”即可进行脚本语句的编辑。控件级脚本的编辑是在控件的属性设置中,点击“编辑脚本”即可进行脚本语句的编辑。

 

需要注意:如果使用“快捷设定”按钮,则将原脚本清除。编写脚本尽量简洁。问卷中脚本语句有字符限制,在3000个字符以内。如果所需脚本超出3000个字符,可以在生成调查问卷后对问卷XML文件进行修改。可以在调查问卷浏览处点击【导出】按钮导出所选的调查问卷为XML文件。

2.3.2.   Epidata脚本的兼容

在流行病学动态数据采集平台中完全支持Epidata软件的CHK脚本的表示式,支持绝大多数函数,支持BEFRORE/AFTER ENTRYBEFORE/AFTER RECORD等事件。

 

在流行病学动态数据采集平台中,Epidata软件的脚本命令兼容做了尽可能大的支持,主要可分为两种情况:

1)         支持并完美执行:可以在脚本中使用并且能正确的运行的脚本命令,如AUTOJUMPJUMPSGOTORANGEREPEATIF….THEN等命令

 

2)         兼容但不执行:为了保持对导入Epidata问卷的兼容,部分命令允许存在于脚本中但是在实际运行过程中不会被执行,如BACKUPWRITENOTEINCLUDERELATIVE等命令。

2.3.3.   新增特性

在流行病学动态数据采集平台中,适应于在web系统的特性和实际应用中需要,在原有的Epidata支持外,还自定义了一些增强的命令和函数等:

 

自定义函数:

1)         SELECTIONCOUNT:用于获取某个多选控件选中了多少个选项,如:SELECTIONCOUNT(C_PARTS),其中C_PARTS是多选控件或者列表选择控件的字段编号。

2)         ISSELECTED:用于判断某个多选控件是否同时选中了某些选项,: ISSELECTED(C_PARTS,”1”,”2”)判断是否C_PARTS控件是否同时选中了保存值为12的选项;ISSELECTED(C_PARTS,”1”)判断是否C_PARTS控件是否选中了保存值为1的选项

3)         RECORDCOUNT:用于判断子表控件的录入数据的个数,如:RECORDCOUNT(S_TABLE),其中S_TABLE是子表控件的字段编号。

 

自定义命令:

1)         HIDEROW/UNHIDEROW:隐藏或者显示指定控件所在的行,如:HIDEROW F_NAME

2)         HIDEROWS:JUMPS命令类似,用于设定在某些取值的情况下隐藏或者显示某些控件所在的行。如:

HIDEROWS

1 FIELD_1

2 FIELD_2

4 WRITE

END

3)         HIDES:和JUMPS命令类似,和HIDEROWS命令不同的是,此命令此隐藏或者显示控件本身。

4)         ASSERT:用户定义数据校验,可在问卷脚本和控件中使用。

在问卷脚本中时,使用方式如下:

 

ASSERT FIELD_1, FIELD_1=1,” FIELD_1需要等于1”

 

当控件FIELD_1的值不等于1提示FIELD_1需要等于1,并且系统会跳转到控件FIELD_1。命令的第三部分是返回true/false表达式。

        

                   在控件级脚本时,如在FIELD_1字段上,可以直接编写

 

ASSERT FIELD_1=1,” FIELD_1需要等于1”

 

                   效果和上文中的问卷级脚本类似。

2.3.4.   脚本示例

2.3.4.1.            /

注释行必须以/字符开始。以/字符开始的行在执行脚本时将被忽略。例如:

JUMPS                              /跳转

1 FIELD_1

2 FIELD_2

3 FIELD_3

END

 

2.3.4.2.     AFTER ENTRY

设置一个命令块,其中的命令是在当前变量录入完毕后和/或光标移到另一个变量时执行。AFTER ENTRY是一个块命令,必须以END 结束。如果命令出现在变量块中,即使没有放在AFTER ENTRY块中,这些命令仍被视作AFTER ENTRY块命令。例如以下两段脚本,执行结果相同,当光标离开当前字段时,如果FIELD_10,则跳转至FIELD_2

 

AFTER ENTRY

IF FIELD_1=0 THEN

GOTO FIELD_2

ENDIF

END

FIELD_1                         /FIELD_1是字段编

IF FIELD_1=0 THEN

GOTO FIELD_2

ENDIF

END

 

2.3.4.3.     AFTER RECORD

设置一个命令块,其中的命令是在保存一条新的或者修改了的记录前执行。AFTER RECORD 命令只能用在问卷级脚本中,检查数据是否录入正确。如果在AFTER RECORD 命令块中执行GOTO 命令,那么当前记录将不被保存。

 

在下面的例子中,如果FIELD_1为“1”且FIELD_2为空,则程序会自动跳出一个警告框,光标移到FIELD_2变量上,该记录暂不被保存

 

AFTER RECORD

IF (FIELD_1=1) AND (FIELD_2="") THEN

HELP "2不能为空"

GOTO FIELD_2

EXIT

ENDIF

END

 

2.3.4.4.     BEFORE ENTRY

设置一个命令块,其中的命令是在当前变量激活,但尚未录入时执行。

在下面的例子中,当光标移至当前字段,开始执行BEFORE ENTRY命令块中的语句。如果FIELD_12,则光标直接跳转至字段FIELD_2

 

BEFORE ENTRY

IF FIELD_1=2 THEN

GOTO FIELD_2

ENDIF

END

 

2.3.4.5.     BEFORE RECORD

设置一个命令块,其中的命令是在一条新纪录开始,但尚未录入任何数据时执行。通常用在问卷级脚本中。下面的例子中,当开始录入一条新纪录时,先执行BEFORE RECORD命令块中的语句,将当前日期赋给字段FIELD_1

 

BEFORE RECORD

LET FIELD_1=TODAY

END

 

2.3.4.6.     EXIT

停止执行并离开一个命令块。使用EXIT,可以使程序不必继续执行后面长长的命令。例如下面的命令块,当FIELD_11FIELD_2为空时,弹出一个提示框,程序终止,不在继续运行后面的命令。

 

AFTER RECORD

IF (FIELD_1=1) AND (FIELD_2="") THEN

HELP "2不能为空"

EXIT

ENDIF

END

 

2.3.4.7.     GOTO

令光标移到指定的变量上去。

 

GOTO FIELD_3                       /跳转至FIELD_3

GOTO WRITE                        /跳转至保存按钮,终止数据录

 

2.3.4.8.     HELP

使用该命令可以自动弹出一个消息框,消息框的内容由问卷定制人员自行指定。点击消息框的“确认”按钮继续数据的录入。有4种不同类型的消息框:信息(information)框、警告(warnings)框、确认(confirmation)框和错误(error)框。如果没有指定消息框的类型,程序会按照信息框来显示。指定消息框的类型,无需写类型的全称,只用第一个字母表示即可(例如,“C”表示确认框)。在消息文本中,插入“\n”可以使其后面的文字另起一行显示。消息框举例如下:

HELP “This is the information text

/信息

HELP “This is a \n two-line warning box” TYPE=WARNING

/警告

HELP “This is also a warning box” TYPE=W

/警告

HELP “Please confirm” TYPE=CONFIRMATION

/确认

HELP “You made an error!” TYPE=ERROR

/错误

 

2.3.4.9.     IF…THEN

IFTHEN命令块必须以ENDIF结束。IFTHEN命令的结构是:

IF < condition expression > THEN                        /如果条件表达式为

  < commands to execute if expression is true >            /则执行命

ENDIF

或者是:

IF < condition expression > THEN                        /如果条件表达式为

  < commands to execute if expression is true >            /则执行此部分命

ELSE                                               /否则执行下面的命

  < commands to execute if expression is false >

ENDIF

 

IFTHEN命令块中,条件表达式必须有布尔逻辑结果(即“真”或“假”),条件表达式可以包含几个部分,之间用ANDOR连接,每部分必须用圆括号括起来。例如:IF (FIELD_1=1) AND (FIELD_2=””) THENENDIF。执行的命令可以写成几行,其中也可以包含其他的IFTHEN命令(即嵌套的IF语句),如下面的例子。

 

AFTER ENTRY

IF FIELD_1=1 THEN

IF FIELD_2=2 THEN

GOTO FIELD_3

ELSE

GOTO FIELD_4

ENDIF

ENDIF

END

 

2.3.4.10.JUMPS

有条件地跳转到其他变量上。JUMPS是一个块命令,必须以END结束。在JUMPSEND之间,需要指定:(1)当前变量可能录入的数值;(2)与数值对应跳转的目标变量名。

 

使用方法如下面的例子,如果当前变量为“1”,则跳转至字段FIELD_1;如果当前变量为“2”,则跳转至FIELD_2;如果当前变量为“3”,则跳转至最后一个变量;如果当前变量为“4”,则跳转至“保存”按钮,终止数据录入。

 

JUMPS

1 FIELD_1

2 FIELD_2

3 END

4 WRITE

END

 

2.3.4.11.LET

令某个变量等于某个数值或某个计算的结果。LET命令在使用时可以将LET省略,直接编写后面的表达式即可。

 

使用方法如下:

LET FIELD_1=1                  /返回1

LET FIELD_2=FIELD_1             /返回1

LET FIELD_3=TODAY              /返回当前日期,如11/28/2012

LET FIELD_4=((15/2)>4)           /返回true

FIELD_5=((15/2)<4)              /返回false

 

2.3.4.12.MUSTENTER

保证当前变量必须录入。在控件级脚本中使用。在提交数据时对当前变量进行校验,如果为空则弹出提示框提示该值不能为空。控件属性中可以定义该控件是否“值可以空”,故不建议使用MUSTENTER

2.3.4.13.RANGE

为变量定义一组允许录入的数值。此脚本也可以在控件的属性“快捷设定”中设置。脚本例如

RANGE -5 5

/将值类型定义为整数,则允许录入-55之间的数

RANGE 1.0 10.0

/将值类型定义为小数,则允许录入1.010.0之间的数

RANGE 11/01/2012 11/30/2012

 

 

2.3.4.14.REPEAT

如果在问卷级脚本中设置REPEAT,则在新的记录中,程序自动复制前一条记录的内容到当前记录;如果在控件级脚本中设置REPEAT,则在新的记录中,仅复制前一条记录中该控件的内容。此脚本也可以在问卷或控件的属性“快捷设定”中设置。

2.4.  生成调查问卷

在流行病学动态数据采集平台中,调查问卷则是指将问卷模板发布为调查任务后,供数据录入用户进行数据录入时使用的问卷实例。系统中的调查问卷是由调查问卷模板在某一时刻生成的。调查问卷生成之后,调查问卷本身不能再进行修改,并且与生成它的调查问卷模板之间也再也没有直接的关系。即修改调查问卷模板,由该模板生成的调查问卷都不会再发生任何变化。系统没有提供直接修改问卷的方法。若要对调查问卷进行修改,则需要先修改模板,再通过模板生成一份新的问卷。

 

调查问卷可以是基于问卷模板生成,也可以是Epidata模板直接导入系统。实际中,使用问卷模板生成调查问卷应用较多。

 

2.4.1.   新建调查问卷

“新建调查问卷”是指基于问卷模板生成调查问卷。在“定制管理”下拉列表选中“新建调查问卷”,如 41所示。

 

41 新建调查问卷菜单

 

         系统切换到新建问卷界面,如 42所示。点击模板ID的“选择”按钮,弹出如图48所示的问卷模板列表,选择需要生成问卷的模板。保存后再进入浏览调查问卷界面,看到新生成的问卷已经在列表中。

 

42 新建问卷界面

2.4.2.   导入Epidata问卷

在“调查问卷管理”菜单中选中“导入Epidata问卷”,如图50所示。在右侧窗口出现“调查问卷导入”界面,如 43所示。

43 导入Epidata菜单

 

填写好调查问卷名和调查问卷描述,直接点击“选择”按钮选择本地的Epidata文件(系统当前仅支持导入一个REC文件和CHK文件),并确认是否将该问卷共享给其他人,然后点击保存按钮,即可创建新的调查问卷。在“浏览调查问卷”界面可以看到问卷类型为“Epidata问卷”。

 

44 导入Epidata界面

 

只能将Epidata问卷导入为调查问卷,而不能将Epidata问卷导入为可编辑的调查问卷模板。

2.4.3.   导入调查问卷

在“浏览调查问卷”界面,点击“导入”按钮,即可进入“调查问卷导入”(XML文件)的界面,如 45所示。

 

45 调查问卷导入界面

 

填写好调查问卷名和调查问卷描述,直接点击“选择”按钮选择本地的问卷文件(XML文件),并确认是否将该问卷共享给其他人,然后点击保存按钮,即可创建新的调查问卷。此处导入的XML文件必须是符合系统定义的调查问卷定义文件,一般都是在系统中导出的调查问卷XML文件。更多信息请参见本文档参考部分。

2.5.  组件设计和管理

用户可以将在调查问卷中经常使用具有关联性的一组变量以组件的形式保存下来,下次在需要使用此组变量时直接引用这个组件即可快速完成这组变量的设计。这部分的功能特性将在组件管理模块中详细介绍。

 

举个例子来讲,如果用户经常设计与人相关的调查问卷,那么可以将常用的人口学信息:姓名、性别、年龄、出生日期、身份证号码等信息设计为个人信息的组件,并可在组件内直接设置好身份证号码和出生日期、性别、年龄之间的逻辑校验关系。在设计问卷时,直接插入此组件到问卷中,可帮助用户省略了重复设计的巨大的工作量。

2.5.1.   组件设计

组件设计界面和调查问卷设计界面类似,可以使用系统所有的支持的控件进行组件的设计,也可以加入数据校验和显示操作的脚本。组件设计效果如。

 

和调查问卷模板设计界面不同的是,在组件设计界面,组件的属性只有【组件名】、【组件描述】和【是否共享】三项。

 

46 组件设计界面预览

2.5.2.   插入组件

组件设计好之后,在组件设计界面或者调查问卷模板设计界面的左上角,点击【插入组件】按钮,即可弹出组件选择界面。选择需要插入的组件,点击后面的【选择】按钮,即可将选中的组件插入到当前问卷模板或者组件。

 

47 插入组件界面示例

         需要注意,由于组件内的各个控件的编号和名称都是固定的,因此如果需要在当前调查问卷模板内插入多个组件,请注意修改各个插入的控件的字段编号及其关联的脚本。对插入后的控件进行修改并不会修改原组件。


 

3.      调查任务发布与管理

调查问卷设计完成之后,需要将调查问卷发布,最终的数据录入用户才能登录系统并且录入数据。在流行病学动态数据采集平台中,支持在一次调查中发布多个调查问卷,所有的调查问卷都共享同一组用户和权限设置控制。一次调查对应于系统中的一个调查任务。每个调查任务都有一个独立的网址入口,以防止问卷数据录入用户登录到错误的调查任务中。

3.1.  切换到调查任务管理菜单

按照2.1.1所述,先登录到问卷定制管理平台。

 

点击左上角菜单中的【发布管理】按钮,系统菜单区切换到发布管理主菜单。如下图 48所示。

 

48 发布管理主菜单

3.2.  发布调查任务

在调查任务管理主菜单中,单击【新建调查任务】菜单项,右边工作区显示新建调查任务界面,如下图所示。

 

49 新建调查任务界面

 

在新建调查任务界面,主要属性描述如下:

 

1)         调查任务名:调查任务的名称,会在调查任务登录页面和调查任务主界面显示。

2)         描述:对调查任务的文字性描述说明

3)         权限管理:

a)         系统内置(共享用户):问卷定制平台的用户可以直接登录此调查任务访问,但用户访问的功能授权需要单独管理。

b)         系统内置(单独用户):独立一套的用户。调查任务管理员需要单独从头建立用户并给用户授权。

一般情况下,推荐使用【单独用户】。      

4)         启用匿名用户:在【权限管理】选择【单独用户】时此选项可用。在此选项选中后,系统会默认建一个用户名为匿名用户的用户,数据录入用户初次访问系统时无需登录即可直接以此匿名用户的权限登录访问系统。系统管理员可以设置匿名用户的权限从而达到管理默认访问用户的权限的目的。

5)         注册用户自动审核: 在【权限管理】选择【单独用户】时此选项可用。勾选之后用户在注册用户之后,无需系统管理员审核即可自动创建新用户,并为新用户关联到用户组【自动审核用户用户组】。

6)         操作手册:可以上传调查任务的使用指南以便数据录入用户可以下载查阅。在调查任务界面,下载操作书册的链接在系统界面的右上角。

7)         调查任务所属问卷:点击“添加”或“删除”按钮完成对问卷的管理。【问卷分组】控制不同的调查问卷在数据录入主界面显示在不同的分组中,相同分组名字的调查问卷会显示在同一个菜单下。生成调查任务后,对调查问卷的修改将不会影响该调查任务。

8)         视图映射:指在本次调查任务中某些视图映射到系统内的某个数据字典上。如果在问卷中用到了地区编码或机构编码等系统内置的字典,就需要设置视图映射。如果本次任务中使用了但是未指定的数据映射,将使用系统级的数据视图所映射的字典。

 

设置完任务属性后,点击保存,则任务创建完毕。在“浏览调查任务”界面可看到新建的任务。对于权限控制为【单独用户】的调查任务,创建此任务的用户为管理员,默认拥有所有权限。在未建立其他用户之前,只有此用户可以登录访问此调查任务。

3.3.  浏览调查任务

在调查任务管理主菜单中,单击【浏览调查任务】菜单项,右边工作区显示调查任务浏览界面。可在此界面上对调查任务执行修改、删除、打开、导入、导出等操作。

 

50 浏览调查任务界面

 

         在调查任务浏览界面,用户只能浏览自己创建发布的调查任务,也就是说调查任务只能被他的创建者浏览到。

3.4.  修改调查任务

在“浏览调查任务”界面的“操作”栏,可以对调查任务进行管理,包括修改、查看、删除等。这里主要介绍“修改”操作。在“浏览调查任务”界面点击“修改”按钮,即可打开任务修改界面,如所示。常见的修改主要有修改任务结束日期、问卷升级和替换等。

 

51 修改调查任务界面

 

         调查任务内的调查任务一般放置在【数据采集】菜单下,如果需要使用其他的名称,请在调查任务的【问卷分组】中填入所需要的菜单项名称。

 

升级问卷是用调整后的问卷替换旧的问卷,升级过程中会将旧的数据转换到新的问卷中来。升级问卷注意事项:

1)         新旧问卷的数据项设计需兼容(注意不能有以下情况:有新增的必填字段、将有空白数据的字段设置为必填字段、更换字段的类型为不兼容的数据类型等),否则会导致数据丢失。

2)         升级过程是不可逆的。

3)         在问卷升级之前最好备份数据。

4)         升级问卷后,需要对用户组权限进行相应修改。

 

替换问卷是用新的问卷替代掉旧的问卷,并且清除掉旧的问卷数据。如果在被升级的问卷和旧问卷存在不兼容的情况,请使用替换问卷功能。替换问卷注意事项:

1)         在替换问卷之前必须备份数据。

2)         问卷替换过程中旧问卷的数据将被直接清除且不可恢复。

3)         替换问卷后,需要对用户组权限进行相应修改。

3.5.  访问、登录调查任务

调查问卷成功发布以后,系统即成功建立了一个调查任务。系统会为调查任务分配一个全局唯一的ID,同时根据这个ID,用户可以直接打开这个调查任务的登录界面。

 

获取调查任务ID:

         在问卷定制管理平台中,打开调查任务浏览界面,如 52所示。列表的第一项即是调查任务的ID。因为只有调查任务的创建者能浏览到调查任务,因此请使用发布调查任务的账号登录系统查看所创建的调查任务的ID。在调查任务的浏览,可以点击列表右侧的【打开调查任务】按钮直接在新窗口中打开调查任务的登录界面,用户可以将此地址记录下来以提供给数据录入用户登录调查任务使用。

 

52 获取调查任务ID

 

调查任务登录网址的一般的形式为http://[SERVER]/dap/task/[TASKID],其中SERVER是指系统发布的服务器的域名或者IP,http://eddc.chinacdc.cn/dap/task/1

 

直接在浏览器中输入调查任务的登录网址即可打开调查任务的登录界面,在登录界面中,会显示用户创建调查任务时指定的调查任务的名字,如 53所示。需要注意,如果允许匿名用户登录,则系统会默认无需登录直接以匿名用户登录到调查任务中,如需要切换为其他用户,请先点击右上角的退出登录按钮后再以其他用户登录,如 54所示。

 

53 调查任务登录界面

 

 

54 默认匿名用户登录界面

3.6.  调查任务管理

调查任务的管理一般包含对调查任务信息的修改,为调查任务的数据录入建立用户,为数据录入用户分配权限,为用户定制报表等。其中调查任务信息的修改请参见3.4,为用户定制报表请参见数据统计章节。

 

在流行病学动态数据采集平台中,采用了基于角色的访问控制(RBAC)来实现对用户的管理和授权。因此在本章节中主要介绍如何管理用户并且为用户授权。

3.6.1.   登录调查任务管理菜单

登录进调查任务后,点击【系统管理】菜单,系统主菜单切换到用户管理和用户组管理界面。

55 调查任务系统管理主菜单

3.6.2.   用户管理

调查任务创建之后,除了系统内置的用户(调查任务创建用户和匿名用户),系统内不存在任何其他用户。因此一般来说需要调查任务登录进调查任务创建数据录入账号并且为其授权,则数据录入账号才能登录进入调查任务进行数据录入。

3.6.2.1.            新建用户

点击【用户管理】菜单中的【新建用户】菜单,系统界面打开新建用户菜单,如所示。

56 新建用户界面

 

如果不允许用户浏览其他机构的数据,请勾选【机构直报用户】。

 

如果需要为用户授予多个权限,请多次点击【用户分组关系】的右侧的【添加】按钮,再分别点击【选择】按钮选择需要授予的权限。

3.6.2.2.            批量创建用户

如果需要大量创建用户,使用新建用户功能一个一个的创建用户将是一个非常巨大的工作量,因此系统提供了批量创建用户的功能。系统支持按照地区编码和机构编码创建用户。

 

点击【批量创建用户】菜单,系统打开批量创建用户的界面,如 57所示。

 

57 批量创建用户界面

如果在创建用户类型中选择【地区】,系统将创建用户名为地区编码的账号,否则使用地区编码和机构编码为每一个编码创建一个账号。

 

在级别中勾选上的级别的地区编码才会被创建账号。

 

在用户账号生成规则指定用于生成用户登录账号的模式,用{0}表示当前用户生成用户的地区编码或机构编码。如输入lr{0}yh,且四川省的地区编码为51000000,则生成的四川省省级用户的登录名为lr51000000yh

 

用户名生成规则中指定用于生成用户显示名的模式,用{0}表示当前用户生成用户的地区名称或机构名称。如输入“{0}用户”,则生成的四川省省级用户的显示名为“四川省用户”。

 

在初始密码中设置的密码为会赋予每一个创建的用户作为其初始密码。

 

在用户分组关系中所有选中的用户组权限会被赋予每一个创建的用户作为其用户授权。

3.6.2.3.            用户注册和审核

系统支持用户自主注册调查任务账号,系统管理员审核通过授予用户登录的用户管理模式。

 

在用调查任务登录界面,点击【注册】按钮,系统打开服务条款显示界面,用户点击同意服务条款后打开用户信息注册界面后,用户填写注册信息保存后即完成用户信息注册。在填写注册信息时建议填写电子邮箱,用户通过审核后系统将自动发送邮件通知。

 

58 用户注册界面

 

调查任务管理员登录进入调查任务管理界面后,点击【浏览审核注册用户】,即可打开已经注册的用户的浏览界面,点击【生成用户】按钮,进入用户生成界面,如所示。

59 生成注册用户界面

         在注册用户生成界面,系统会装载用户在注册时填写的信息,调查任务管理可以对信息进行修改,并且对其完成授权后点击【保存】按钮即可生成账号。

3.6.3.   用户组管理

在流行病学动态数据采集平台中,采用了基于角色的访问控制(RBAC)来实现对用户的管理和授权。用户组对应于基于角色的访问控制模型中的角色的概念,代表一类用户所拥有的权限的集合。

 

权限分为两部分,一是控制对功能的访问,如新建、浏览、删除等;一是对数据访问范围的限制,比如省级用户只能访问其辖区范围内的数据,或者对病种设置为受权限控制以后,用户只能浏览查看被授予访问的病种的数据。

3.6.3.1.            新建用户组

点击【新建用户组】菜单,系统进入用户组新建界面,如所示。

 

60 新建用户组界面

各个属性描述:

1)         用户组名:名称

2)         用户组描述:关于用户组的描述性文字

3)         允许的操作:设定对于每个调查问卷的功能的访问控制。

a)         应用程序:下拉选择问卷内的所有调查问卷的名称,包含用户管理和报表等内置的应用程序

b)         操作:选定的应用内受权限控制的功能集合,勾选了表示允许用户使用此功能。需要注意,对于编辑、删除、查看等功能来说,其依赖与浏览功能,需要授予浏览功能才能让用户对数据进行编辑和删除等操作。

c)         用户数据隔离:用户控制用户对浏览到的数据的功能访问控制,此选项只有在设计调查问卷模板时在问卷模板属性处勾选了【记录操作痕迹】才生效,包含三个选项:

                                       i.              数据不共享:用户只能查看、编辑、删除自己录入数据

                                     ii.              只读共享:用户能浏览、查看所有权限内的数据,但是只能修改和编辑自己录入的数据

                                    iii.              读写共享:用户只能查看、编辑、删除所有权限内的数据

4)         数据权限授予:用于处理在问卷设置为授权控制的字段的权限的授权。地区编码控件默认只允许访问用户辖区内的数据;机构编码控件默认只允许直报用户访问本机构的数据,其他控件的则需要授权才能访问,否则不允许访问。

a)         应用程序: 下拉选择问卷内的所有调查问卷的名称

b)         数据表字段:选中的应用程序的受权限控制字段的列表

c)         权限授权:授予访问的值。

3.6.3.2.            浏览用户组

点击【浏览用户组】,系统打开用户组的浏览界面,如 61所示。

 

61 用户组浏览界面

 

需要注意,由于面向的是问卷调查的数据处理,用户只能访问自己创建的角色和其他高级用户共享出来的角色。这和传统的基于角色的访问控制模型是有区别的。


 

4.      数据录入用户操作

调查问卷发布完成之后,需要调查人员将收集的调查问卷结果录入对应问卷,或者请被调查人员直接填写问卷。本章介绍录入调查问卷数据的相关操作和问题。

 

需要注意,对任意的调查任务,系统都支持登录调查任务录入数据和直接填写问卷这两种数据填报方式。调查任务的创建者可根据被调查者等实际因素考虑采用任意一种数据录入方式,或者同时采用两种录入方式。

4.1.  登录调查任务录入数据

在实际的应用过程中,由于受被调查者的能力或者其他约束,或者受调查实施的环境(网络、计算机等)等因素的影响,被调查者往往难以直接填写问卷。如果某个调查任务的数据需要经常用户登录进行录入或者编辑,推荐采用用户登录调查任务进行录入调查问卷数据的方式。

4.1.1.   登录调查任务

调查问卷成功发布以后,系统即成功建立了一个调查任务。系统会为调查任务分配一个全局唯一的ID,同时根据这个ID,用户可以直接打开这个调查任务的登录界面。

 

调查任务登录网址的一般的形式为http://[SERVER]/dap/task/[TASKID],其中SERVER是指系统发布的服务器的域名或者IP,http://eddc.chinacdc.cn/dap/task/1。调查任务的管理员任何获取调查任务的登录网址请参见章节3.5

 

如果在创建调查任务时允许匿名用户,则初次打开时即以匿名用户登录。如果用户需要以其他用户登录,请先点击右上角的【退出系统】按钮,重新使用其他账号进行登录。

 

62所示,用户登录系统后,在主菜单区域默认打开【数据采集】主菜单,或用户设定的主菜单项目。在右侧工作区默认打开系统讨论区。

 

         如果调查任务的创建者在创建调查任务时指定了多个【问卷分组】,系统默认打开第一个问卷分组菜单。用户如果要访问其他分组菜单,请在具体问卷分组菜单按钮上单击鼠标左键。

62 数据录入用户登录界面

4.1.2.   录入数据

系统定制出来的默认的录入调查问卷的菜单名为“新建”加上调查问卷的名称,用户直接单击问卷菜单区的新建菜单名称,即可在右侧的工作区中打开数据录入界面。

 

调查任务的创建者应在调查任务的操作手册中注明数据填报要求,以便数据录入用户在填报调查问卷时知晓每个问卷字段的业务含义。调查问卷的设计者也可以在设计调查问卷时,在调查问卷模板的对应的控件的【提示信息】属性中填入对应的提示信息。

63 数据录入界面示例

4.1.3.   数据暂存

在定制问卷时,问卷属性的“允许的操作”处可以勾选“暂存”选项即启用此功能。为防止用户误操作,“暂存”按钮出现表单的左侧。

 

暂存功能支持新增和修改数据。在用户填写、修改数据时,点击暂存功能,用户当前填写的数据无需校验即可暂时保存在起来。新增功能的暂存数据每个用户只能暂存一条,修改功能的暂存功能可以对每条已有的数据暂存一条。暂存的数据未保存到问卷数据中,在浏览和查看数据不生效。

 

用户未登录、登录过期了或者使用匿名账号填报数据时,暂存的数据保存用户本地的计算机上。用户下次必须使用此计算机的此浏览器打开问卷时才会提示用户是否打开暂存的数据;如果用户登录暂存数据,则用户可以再其他机器上打开此暂存的数据。

4.1.4.   浏览数据

系统定制出来的默认的浏览调查问卷数据的菜单名为“浏览”加上调查问卷的名称,用户直接单击问卷菜单区的浏览菜单名称,即可在右侧的工作区中打开数据浏览界面, 64所示。

 

浏览界面一般可分成两部分:

1)         查询条件区:当用户在设计调查问卷模板时指在某些控件上勾选了【查询字段】,则该控件会出现在查询条件区域。查询条件区出现在页面的上部,用户可以在里面设置过滤条件,然后点击【查询】按钮即可按照指定的查询条件查询并且列出数据。

 

在设计调查问卷模板时,在问卷属性中指定的组合查询就是出现在查询区域的前面,如图中左上角红色框处所示。用户可以点击左侧的下拉选择控件以切换查询条件作用的字段。

 

是否选择控件在查询条件区显示为下拉选择框,主要是用于帮助用户处理查询全部数据的情况,如图中右上角红色框处所示。

 

2)         数据列表区:数据列表区出现在页面的下部,用户在设计调查问卷模板时勾选了【列表字段】的控件都会出现在列表中。列表最左侧第一列固定位调查问卷数据的全局唯一ID,最右侧固定位问卷数据支持的操作项,查看、修改、审核、删除等操作都需要在此处点击。

 

在数据列表的表头上单击鼠标可实现按照指定字段进行排序,可重复单击实现顺序、逆序排序的切换。对应于不同的排序规则,系统显示不同的图标以供用户认知。

 

在数据列表区才用了分页显示数据的方式,系统默认按照每20条数据显示为一屏,称为一页。用户可以通过数据分页工具栏对数据进行浏览,也可以通过指定更精确的查询条件进行精确的查找。

 

在数据列表的最下方,是数据分页工具栏。数据分页工具栏中显示的信息依次为当前页数、总页数和总数据记录数。点击【导出excel】按钮,系统会将符合查询条件的全部数据以压缩文件的方式下载给用户。点击【<<】按钮显示第一页数据,点击【<】按钮显示前一页数据,点击【>】按钮显示下一页数据,单击【>>】按钮显示最后一页数据。

 

64 数据浏览界面示例

 

4.2.  直接填写问卷

随着网络的发展和普通民众的IT知识的增长,越来越多的人能够熟练地使用计算机。因此对于计算机比较熟练地被调查者,可以将调查问卷的录入地址发给他们,由被调查者直接录入,从而减少代录数据带来的误差。

 

与此同时,随着互联网的发展,我们需要经常需要面对网络上的未知的用户发布调查问卷,对于这种需求,只能是将问卷数据录入的网址发布出去。本章节将介绍将某个问卷的数据录入功能发布成网址的方式。

4.2.1.   发布问卷录入地址

调查任务的每一个调查问卷的每一个操作的功能都是可以直接输入网址访问的。功能直接访问的网址满足是如下格式:http://[SERVER]/dap/form/[TASKID]/[APPID]/[TEMPLATE]_add

。其中SERVER是服务器部署的地址或者IPTASKID时调查任务编写的编号,APPID时问卷发布的ID(从调查任务浏览界面点击【导出excel】按钮,在导出的压缩包里打开“调查任务所属问卷”里的ID字段),TEMPLATE时设计调查问卷模板时指定的【模板编号】。

        

         调查问卷的录入功能的网址也可以不用自己拼装而直接获得。调查任务创建用户可以登录调查任务,打开对应的数据录入主菜单,将鼠标放置到录入功能的菜单项上,系统将弹出包含直接访问网址的提示信息,如 65所示。

65 功能地址信息提示示例

 

如果用户需要复制功能放置地址,可以通过快捷键获得:

1)         IE浏览器下,单击新建调查问卷数据功能,然后按下CTRL+C键,系统将把网址等信息复制到剪切板,用户可以直接粘贴到其他文本编辑器中。

2)         在谷歌浏览器(Chrome,火狐浏览器(Firefox)中,在数据录入功能的左边按下鼠标,一直向右选中功能名称,然后按下CTRL+C键,系统将把网址等信息复制到剪切板,用户可以直接使用。

 

对于直接的数据地址系统支持一个额外的参数:single=true/false。当设置single的值为true时,当用户录入完一条数据后,系统将提示用户用户只能录入一条数据,否则将提示用户是否录入下一条数据。网址对大小写敏感,请注意参数之前的问号。网址带参数示例:

 

http://localhost/dap/form/3/1/SURVEY__add?single=true

 

除此之外,在URL中支持向填写问卷中传入额外数据。如假设问卷中存在字段Field_1Field_2,URL可以如此编写

 

http://localhost/dap/form/3/1/SURVEY__add?single=true& Field_1=0001& Field_2=A

 

当用户使用此URL打开数据录入页面进行录入时,字段Field_1Field_2将会被自动赋上URL中指定的值。处于跨系统兼容性的原因,请勿在URL中指定中文参数值。只有调查问卷中非子表控件的子控件的字段支持此使用方式。此功能常用于为不同的用户发送不同的编号(邀请码、用户识别码等)时使用。

4.2.2.   手机录入和二维码

如果需要将网址发给你需要手机填写的用户,系统支持生成二维条形码的功能。在给定的问卷录入地址的后面新加一个参数output=qrcode,即可得到此输入地址的二维条形码。例如对于网址:

 

http://localhost/dap/form/3/1/SURVEY__add?single=true& Field_1=0001& Field_2=A

 

加一个参数后为:

http://localhost/dap/form/3/1/SURVEY__add?single=true& Field_1=0001& Field_2=A&outout=qrcode

 

用此网址得到一个表单录入网址的二维条形码图片。请将此图片保存下来使用。

66 二维条形码示例

 

         在手机使用手机浏览器的扫一扫功能即可直接打开此网址。

4.2.3.   访问网址录入

被调查者使用直接录入网址完成第一条的数据的填报后,如果该问卷允许用户录入多条数据,系统将弹出对话框询问用户是否录入下一条数据,点击【确定】按钮开始录入下一条,点击【取消】将进入编辑当前数据的界面,如所示:

 

67 录入下一条提示示例

 

被调查者使用直接录入网址完成第一条的数据的填报后,如果该问卷只允许用户录入一条数据,则系统提示数据已经成功保存并将关闭此窗口,然后【保存】按钮将禁用。如 68所示:

 

68 提示关闭信息示例

4.3.  其他

4.3.1.   系统讨论区

用户可以通过系统公告栏就调查任务相关的问题进行讨论。

 

用户点击右上角的【讨论区】即可进去系统讨论列表界面。在列表中只列出最近30天的用户发表的主题,如 69所示。

 

69 系统讨论区示例

 

点击讨论区右上角的【发表新主题】界面,可以打开发表新主题界面,如 70所示。需要注意,只有调查任务的创建者才能设置【置顶截止日期】和【不允许回复】。设置了【置顶截止日期】,该主题将一直显示在讨论区的最前面;勾选了【不允许回复】,则只有调查任务的创建者能够回复该主题。用户填写完【标题】和内容之后,直接点【发表新主题】按钮即可发布一条新的讨论。

 

70 发表新主题

 

在讨论主题的浏览界面,在对应的主题后面点击【回复】按钮,系统将打开主题回复界面,如 71所示。在回复区的前面将列出所有的回复,用户录入完回复内容后点击【回复】按钮即可完成主题回复,点击【返回】按钮即可返回主题列表。

71 主题回复界面示例

4.3.2.   系统公告栏

在系统讨论区的上方,如果存在系统公告,则会显示一个黄色的上下滚动显示的区域。当显示到某个公告时,用户如需要了解详细信息,可直接单击打开详细信息的介绍。系统公告浏览效果如 72所示,详细信息展示效果如 73所示。

72 系统公告栏示例

 

73 公告详细信息示例

 

系统公告的维护由系统管理员在问卷定制管理平台的【系统管理】主菜单项中维护管理。

4.3.3.   修改密码

对于批量创建的用户,他们的密码都是一样的,因此在用户登录时迫切需要用户修改密码。修改密码的功能在调查任务的【系统管理】主菜单项中。

 

点击【修改密码】菜单,系统打开修改密码界面,如 74所示,用户可以修改其显示名、密码和联系信息。修改密码是,用户先在密码的文本框内输入新的密码,然后在【重复新的密码】里填入新的密码即可。用户的创建者也可以对用户的密码进行重置修改。

 

74 修改密码示例

4.3.4.   录入超时设置

系统默认登录一次的最长有效期为30分钟。如果用户在登录30分钟后长时间未操作,则用户的登录将失效。

 

对于一些特别复杂的调查表,如果用户填写的时间超过了30分钟,则在用户填写完成后点击保存按钮保存数据时,用户的登录已经失效。系统对这种场景做了优化,将弹出系统登陆框,提示用户用户重新登录。一旦用户重新登录成功,则用户的数据也会被成功保存到系统中。

 

75 提示用户重新登录界面示例


 

5.      数据统计定制与查看

在流行病学动态数据采集平台中,提供了对调查任务中的数据的实时查看和汇总的功能。实时数据的浏览查看通过数据浏览功能实现,而数据的统计分析汇总功能则是使用了类似于调查问卷的先定制后使用的方式进行。

 

在流行病学动态数据采集平台中, 统计分析汇总功能操作可以分成两部分,即统计分析的定制和统计分析结果的查看功能。由于统计分析的定制功能是设置在调查任务里的,只能由调查任务的管理用户操作;而统计分析结果的查看功能则是可由普通用户操作的。因此本文将数据统计的定制和查看功能单独成为一章介绍。

5.1.  登录统计分析菜单

统计分析的定制和结果查看功能都是包含在具体的调查任务里的,因此用户要使用统计分析的定制和结果查看功能时,都需要先登录统计分析菜单。

 

1)         用户要登录统计分析菜单,需要先打开浏览器,输入调查任务的访问地址,如:http://eddc.chinacdc.cn/dap/task/1

2)         用户在登录界面输入用户和密码,点击登录按钮。登录成功后转入系统主菜单。

3)         在系统主界面点击工具栏上的【统计分析】按钮,在菜单区打开统计分析菜单,如 76所示。

76 统计分析菜单示例

 

需要注意,如果用户在创建调查任务时未选择调查权限管理类型,则【统计分析】菜单项不会出现。

 

在统计分析菜单界面中,第一部分是统计报表定制的菜单,包含新建、修改、删除、浏览报表等。第2部分则是具体统计分析报表的菜单,只有用户获得授权的统计报表或者是用户设计的报表才能在此处显示出来。

5.2.  统计报表定制

在统计分析菜单中,点击【新建简单报表】,即可打开报表定制界面,如下图所示。

 

77 统计分析定制界面示例

 

在统计报表定制界面,各属性说明如下:

1)         报表名:报表的名称,用户显示在授权和报表功能处

2)         业务规则:列出了本调查任务内所有的可用于统计的数据规则。其格式时:[调查分组]调查问卷名称_调查问卷模板名称,便于用户准确识别在哪个调查问卷上进行统计。

3)         查询条件:列出了选中的调查问卷中的所有的可用于查询条件的控件。只有在控件的属性中包含【查询字段】属性的控件才会出现在此处。和勾选了【查询字段】类似,在此处勾选了的字段会作为统计报表的查询字段出现在统计报表数据的查看界面。

4)         数据值:用于计算统计值的设置。

5)         分组列:用于纵向或者横向展开的数值设定,对应不同的字段有不同的分组规则:

a)         包含数据字典的字段:以数据字典的值展开

b)         日期字段:以日期段展开,根据日期范围的不同按年、按月或者按日展开

c)         地区编码控件:按照辖区以及下级编码展开,上级数据包含所有的下级数据的汇总

d)         机构编码控件字段:和地区编码类似,但是在县级时列出按照机构展开

6)         数据约束:分用户授权的数据权限类似,用户统计报表的默认数据约束,这里可以设置任意的字段作为约束。

 

统计报表的属性的在统计报表结果的展示页面的位置如下图所示。

 

78 统计分析各属性作用示例

 

点击【浏览简单报表】菜单,可以打开浏览简单报表的列表界面。在列表界面了列出了本调查任务用户定制的全部报表。除去修改、查看、删除等功能外,还提供了一个【预览】功能。点击预览功能,即可打开该简单报表的实际运行界面,以便用户在设计时查看实际的运行效果。

5.3.  统计报表授权

完成简单报表的定制功能之后,最终用户还不能运行查看定制好的报表。用户需要获得简单报表的授权才能在报表功能处列出此报表的菜单。

 

在用户组管理处管理统计报表的授权时,应用程序项目应该选择【统计分析】项,在操作处会列出该调查任务中所有的简单报表名称,如下图所示。

 

79 统计报表授权示例

5.4.  查看统计结果

如果用户已经获得某调查问卷的授权,则用户可以直接在统计分析菜单下点击具体的统计分析的菜单项,直接会在工作区打开统计数据的查看界面。

 

统计数据的查看界面和数据列表的界面类似,页面的上部是统计数据过滤条件区域,这是由报表定制用户在设计统计报表时指定的,用户可以在其中编辑数据过滤条件,然后【查询】按钮即可应用查询条件进行数据分析汇总。数据列表下面是结果展示区域。界面示例如下图所示。

 

80 统计结果查看界面示例

5.5.  数据表对比

在统计分析功能处,系统预置了一个数据表对比的功能,主要用以辅助用户完成双录入核查等两个调查问卷数据之间的比对工作,界面示例如下图所示。

 

81 数据表比对界面示例


 

第三部分 参考手册

本部分包含系统各个模块和功能的详细使用说明。本部分的内容仅供用户在实际操作时参考使用。如需要介绍系统的操作流程和操作步骤,请阅读本文档第二部分。

 


 

6.      通用信息

本章节包含适用于调查文件定制管理和具体调查任务内的数据录入、系统管理等系统模块的通用性信息介绍。

6.1.  系统兼容性

6.1.1.   浏览器兼容性

流行病学动态数据采集平台的主要功能都是通过用户使用浏览器访问系统具体功能从而为用户提供服务,并保存用户提交的数据。因此系统的兼容性主要是介绍能够准确的使用系统的各个功能的浏览器的软件名称及其版本。

 

流行病学动态数据采集平台主要功能都是在Windows平台进行开发,并且在安卓、IOS等移动操作系统进行了少量的验证性测试,因此如无特殊的声明,系统的兼容性都是指在Windows操作系统之上的浏览器的兼容性。对于在Windows平台上兼容的浏览器,理论上对其LinuxUnixMac OS等其他操作系统发行版本是支持的,但是由于成本等因素我们未进行验证。

 

流行病学动态数据采集平台在开发时主要使用谷歌公司Chrome浏览器(俗称谷歌浏览器,详细信息请参见http://www.google.cn/intl/zh-CN/chrome/)和微软的Internet Explorer浏览器(简称IE浏览器),在发布时会使用Mozilla Firefox浏览器(俗称火狐浏览器,详细信息请参见http://www.firefox.com.cn/)进行验证测试。当遇到用户报告的在苹果公司safari浏览器使用的Bug,我们会尝试修改。

 

在用户使用流行病学动态数据采集平台时,我们推荐使用谷歌浏览器版本32以上,或者使用IE浏览器版本10以上。用户可以使用IE浏览器版本6及其以上版本以及谷歌浏览器、火狐浏览器和Safari浏览器的最近版本访问系统。需要注意,由于微软公司放弃对IE浏览器67版本的支持,我们打算近期放弃对IE浏览器版本67的支持。使用最新版本的浏览器访问系统,将获得更快的操作速度,并且获得最大的系统兼容性和稳定性。

 

对于当前的各种机遇上述浏览器进行二次开发的浏览器软件,如搜狗浏览器、QQ浏览器等,我们未进行功能验证。请用户尽量使用上面章节中介绍的浏览器进行功能操作。

 

流行病学动态数据采集平台提供的功能我们都尽量确保用户在安卓和IOS等移动操作系统上使用系统自带浏览器可以操作。对于其他的浏览器,我们未做功能测试和验证。

6.1.2.   屏幕分辨率兼容性

流行病学动态数据采集平台在调查问卷布局实现上采用的是自动适应浏览器所在计算机的分辨率的算法实现,因此理论上流行病学动态数据采集平台支持所有的主流的分辨率。系统的功能测试主要在1920x1080以及1280x800等分辨率下进行测试。

 

在使用流行病学动态数据采集平台进行调查问卷的设计时,推荐使用大分辨率的计算机进行操作。使用大分辨率的计算机进行调查问卷的设计时,用户将获得更好的界面的操作性和用户体验。

 

用户完成调查问卷设计后,请在调查问卷发布的目标用户的主流分辨率上进行预览并且进行调整,以便数据录入用户获得最好的数据录入体验。在大分辨率下设计的调查问卷,在小分辨率的计算机会遇到原本一行内的控件折行显示等问题。

6.1.3.   网络兼容性

流行病学动态数据采集平台主要通过HTTP协议对外提供基于网页的功能服务,因此在任何支持HTTP协议的IP网络上都可以正常访问流行病学动态数据采集平台所提供的各项功能。

 

用户在操作系统时,应使用快速、稳定的网络链接。特别是在进行文件上传、数据导入等大数据量的操作时,网络的时断时续将可能导致数据上传等操作彻底不可用。

6.2.  系统通用特性

6.2.1.   控件及其操作方法

在本章节中,控件是指在流行病学动态数据采集平台中的用于用户在操作某项数据时的界面操作对象。在流行病学动态数据采集平台中,任何控件都具有两个形态:编辑状态和显示状态。其中在调查问卷的查看和数据列表功能中,控件都是以显示状态输出;而在数据录入和编辑状态下,控件处于编辑状态。这里的所说的操作方法如无特殊说明,都是指数据处于编辑状态下,用户录入和或者修改数据时的操作方法。

6.2.1.1.            文本框

在系统中,文本框控件可用于用户录入字符串、数字、密码等信息。在录入数据时,用户可以通过鼠标点击或者键盘导航等方式使目标文本框控件处理获得输入聚焦的状态,然后可以通过敲击键盘或者通过粘贴等方式录入数据。

 

用户使用文本框录入密码信息时,或者该字段是保密字段且用户不是该条记录的创建者时,用户录入的信息将不会显示在文本框控件中,而是以星号(*,随操作系统的不同而不同)的方式显示。用户在设计问卷时如果在该控件的【文本行数】属性中输入了大于1的数值,则该控件将显示为多行显示状态,并且所占的行数同用户在【文本行数】属性中指定的数值。默认情况下,该控件所占的宽度同用户在设计问卷时指定的【字段长度】属性。但当指定的【字段长度】属性大于60时,将最大以60的宽度显示。当该控件被用于子表控件内时,无论用户指定的【字段长度】属性的值为多大,该控件都是将占满系统为其分配的显示宽度。

 

当该控件用户字符串的录入,并且作为查询条件时,用户可以输入特殊字符以达到模糊匹配的效果。其中星号(*)表示匹配任意长度的任意字符,问号(?)表示匹配一个任意字符。如11*表示匹配任意以11开始的字符串,11?表示匹配任意一个以11开头的长度为3的字符串。

 

当该控件被用于数字类型的数据录入时,用户则只能录入数字和小数点。如果用户在设计问卷时为该控件指定了格式,当用户录入数据后该控件失去焦点时,如果用户录入的数据不符合要求,系统将提示错误并将使该控件重新获得焦点。

 

当该控件在问卷设计时【数据类型】属性值为“是否(布尔型)”时,用户只有录入1或者Y或者true时其值存储为逻辑真值,否则为逻辑假值。

 

当该控件在问卷设计时【数据类型】属性值为“日期”时,用户可以按照“MM/dd/yyyy”的格式接受用户录入日期,用户也可以直接只录入数值,系统会对用户的录入结果执行格式化。

 

82 文本框控件

 

在用户调查问卷时,用户可以为文本框控件指定一个实现了“文本框查询录入”数据视图的数据字典。当该控件指定了数据字典后,用户在数据录入界面可以先输入模糊匹配字符串然后按下回车键或者F9键,系统将列出符合查询条件的字典内的数据项,如 83所示。用户可以用鼠标点击选中录入,或者通过键盘的上下光标选择然后按下回车键进行选中。如果该控件指定了数据字典,当用户录入的值在数据字典中不存在时系统将报告错误,如 84所示。

 

 

83 查询录入示例

 

84 数据错误示例

6.2.1.2.            日期录入

日期录入控件用于帮助用户录入或者使用日历选择录入包含年月日的日期的控件。日期录入控件一般由两部分组成:可以输入日期的文本框和弹出日期选择的按钮。

 

85 日期录入控件及弹出日历

        

一般需要为日期录入控件指定日期显示的格式,在中国一般使用yyyy-MM-dd的格式。其中yyyy表示4位数的公元年数,MM表示从01122位的月份,dd则表示从01到最大31年的月内日期,短横线(-)是日期的分段符,也可以使反斜杠(/)分隔符。用户可以定制问卷自定义日期的显示格式,比如将年月日的各段调整顺序等,如MM/dd/yyyy等。请注意日期格式的设置是大小写敏感的。

 

用户可以在前面的文本框里直接录入日期:可以按照指定的格式录入日期,如输入2012-12-11;也可以不输入段分隔符而直接输入数字表示的日期,如20121211,系统会自动按照指定的格式格式化成对应的显示方式。如果用户以纯数字的方式录入日期且未完全录入日期时,系统会默认以当前日期补充完用户未录入的部分。如用户设定以MM/dd/yyyy格式录入日期,则当用户录入完1211时,系统会自动将数据格式化成12/11/2012

 

用户也可以通过点击文本框后面▼按钮弹出日历选择框来根据日历选择日期录入。在弹出的日期选择框中,点击【<】按钮日历框将加载前一个月的日历;点击【>】按钮日历框将加载后一个月的日历。点击【清空】按钮日历框将自动隐藏并且清空文本框中已有的数据。点击【今天】按钮,系统将将今天的日期填入到日期录入控件中并且隐藏日历框;点击【关闭】按钮系统将直接隐藏日历选择框。用户可以通过日历框中上部的年和月的下拉框快速定位到对应的年份和月份。通过日历选择录入只能录入从1900-01-012050-12-31之间的日期,这个日期范围之外的日期可以通过直接在文本框中录入的方式录入。

 

通常情况下,日期录入控件中的文本框占10个字符的显示宽度。当该控件被用于子表控件内时,该控件将占满系统为其分配的显示宽度。

6.2.1.3.            下拉选择

下拉选择控件用于在较小的屏幕范围内从指定的标准数据字典内选择一项作为输入值。下拉选择控件保存的值时用户在数据字典内指定的存储字段,而在界面上显示则是用在数据字典内指定显示字段。

86 下拉选择控件示例

 

         默认情况下,下拉选择控件的输入值为空,用户可以通过点击下拉选择控件弹出选项来进行选择。如果当用户已经选择某项数据要进行清空数据时,请点击控件在弹出的选项中选中第一项空白项即可清空录入的数据。

        

         默认清空下,下拉选择占用的屏幕控件宽度为数据字典内最大的显示项的字符宽度。下拉选择最小占用宽度不会小于40像素。

 

         下拉选择控件可以和一个系统级别的固定值的数据字典进行绑定,也可以和问卷内的包含的固定值的数据字典绑定。当和固定字典绑定时,控件内的选项是固定不变的。在问卷定制时,可以将控件的【联动项目】属性设置为问卷内的一个多项选择控件或者列表选择控件的编号,则当被指定的控件的选择项发生变化时,该下拉控件内的选项也会随之发生变化。

6.2.1.4.            是否选择

是否选择控件用于录入逻辑真值和假值的录入,主要可用户只有两种状态的变量的录入。是否选择控件默认初始的值为逻辑假,因此即使在用户未点击输入的情况下调用ISBLANK函数也是回返回逻辑假值(False)。

87 是否选择控件

        

         默认情况下,是否选择控件选中和未选中状态下查看状态显示的值为是、否。可以通过在调查问卷定制界面下在其【数据字典】属性中选择一个特定的数据字典由于输出特定的字符。逻辑真值的表示可以用数字1或者字符串“Y”或者true作为其保存值,逻辑假值可以用数字0或者字符串“N”或者false作为其保存值。例如在【数据字典】选择为自定义字典时,自定义字典可以通过下列值让其输出为特殊的显示名称。

88 是否选择控件的自定义字典示例

 

在脚本中为是否选择控件赋值时,可以使用数字1或者字符串“Y”或者true设置其处于选中状态,用数字0或者字符串“N”或者false设置其为未选中状态。例如对于字段编号为FIELD_YN的是否选择可以使用以下脚本设置其处于选中状态:

 

FIELD_YN=TRUE

6.2.1.5.            多项选择

多项选择控件用于在特定数据字典下选择多项字典值的数据录入控件。选中项的值之间用逗号连接并且保存起来。

89 多选选择控件示例

         可以通过在定制调查问卷时设置【每行选项数】属性设置其输出格式。当【每行选项数】属性的值为1,控件每输出一个选项即换行。

        

         多项选择控件可以和一个系统级别的固定值的数据字典进行绑定,也可以和问卷内的包含的固定值的数据字典绑定。当和固定字典绑定时,控件内的选项是固定不变的。在问卷定制时,可以将控件的【联动项目】属性设置为问卷内的一个多项选择控件或者列表选择控件的编号,则当被指定的控件的选择项发生变化时,该多项控件内的选项也会随之发生变化。如果在数据字典中的某项的保存值为空时,则该选项只做为文本显示界面上。

 

         多项选择控件支持在每个选项上关联显示其他控件,如 89所示。可以通过点击具体选项,使选项处于选中状态,然后在选择添加新的控件,则新添加的控件则和该选项进行关联,并且显示在选项后面。每个选项只能关联显示一个控件,如果需要关联显示多个控件,请使用容器类控件作为其关联控件,然后将其他控件加入到容器控件中。

6.2.1.6.            单项选择

单项选择控件用于在特定数据字典下选择多项字典值的数据录入控件。选中项的值之间用逗号连接并且保存起来。

90 单项选择控件

         在单项选择控件的选项上单击鼠标即可选中此选项。此时如果其他选项处于选中状态,则会取消其他选项的选中状态。如果在已经选中的选项上单击,则该选中的选项的状态会被取消。

                  

可以通过在定制调查问卷时设置【每行选项数】属性设置其输出格式。当【每行选项数】属性的值为1,控件每输出一个选项即换行。

        

         单项选择控件可以和一个系统级别的固定值的数据字典进行绑定,也可以和问卷内的包含的固定值的数据字典绑定。当和固定字典绑定时,控件内的选项是固定不变的。在问卷定制时,可以将控件的【联动项目】属性设置为问卷内的一个多项选择控件或者列表选择控件的编号,则当被指定的控件的选择项发生变化时,该单项选择控件内的选项也会随之发生变化。如果在数据字典中的某项的保存值为空时,则该选项只做为文本显示界面上。

 

         单项选择控件支持在每个选项上关联显示其他控件,如所示。可以通过点击具体选项,使选项处于选中状态,然后在选择添加新的控件,则新添加的控件则和该选项进行关联,并且显示在选项后面。每个选项只能关联显示一个控件,如果需要关联显示多个控件,请使用容器类控件作为其关联控件,然后将其他控件加入到容器控件中。

6.2.1.7.            列表选择

列表选择控件用于在特定数据字典下选中多个选项的数据录入,并可对选中的选项进行排序。列表选择控件也可以用于仅仅对数据进行排序,可以通过在定制问卷时不勾选【选项选择】属性即可。右边列表框中选项会作为控件的值被保存起来。

91 列表选择控件

         列表选择控件的左边的列表框显示未选中的选项,右边列表框为选中的选项,并且各个选项处于排序状态。在列表选择控件处于排序模式下,列表选择控件仅仅显示右边的选择框和排序按钮。列表控件中各个按钮的功能和操作如下:

1)         :将左边列表框中的所有选项(无论是否选中)都选择到右边列表框。

2)         :将左边列表框中选中的所有选项都选择到右边列表框。

3)         :将右边列表框中选中的所有选项都选择到左边的列表框。

4)         :将右边列表框中的所有选项(无论是否选中)都选择到左边的列表框。

5)         :将右边列表框中选中的选项移到最顶端。

6)         :将右边列表框中的选项向上移动一格。

7)         :将右边列表框中的选项向下移动一格。

8)         :将右边列表框中的选中的选项移动到最底端.

        

列表选择控件可以和一个系统级别的固定值的数据字典进行绑定,也可以和问卷内的包含的固定值的数据字典绑定。当和固定字典绑定时,控件内的选项是固定不变的。在问卷定制式,可以将控件的【联动项目】属性设置为问卷内的一个多项选择控件或者列表选择控件的编号,则当被指定的控件的选择项发生变化时,该多项控件内的选项也会随之发生变化。

        

         列表选择控件默认占用较大的显示空间,因此在定制调查问卷时,需要用户手工的设定的控件的显示的大小。可以通过设置【宽度】、【高度】属性设置大小,值可以为百分比,表示占用父控件的显示的范围的百分比,如50%。也可以使纯数字,单位为像素。

6.2.1.8.            文件上传

文件上传控件用于用户上传一个文件,文件名被保存到控件的值中。其他用户可以直接下载上传的文件。

 

文件上传控件的文件在数据保存之前被上传到服务器上。如果文件上传失败,则数据保存失败。如果文件上传成功但是数据保存失败,则文件传到服务器上并且无法直接下载或者删除。

 

文件上传控件采用原生的HTML上传技术实现,不依赖Flash或者其他第三方技术实现,因此在移动设备上也能很好的工作。在指定上传文件时,点击【选择】按钮即可打开文件选择框。由于操作系统和浏览器的实现差异,请尽量点击【选择】按钮的左上角以免操作失败。如果要情况文件上传控件的值,请点击【清空】按钮清空。如果文件已经上传,清空按钮只是接触上传文件和当前数据的关联,上传的文件并不会被删除。

 

上传的文件默认存放在系统部署的根目录下的/WEB-INF/uploaded/目录下,文件存放路径为年月日/时间戳+随机数+原始文件名 如:20131009/1381330019666.501574.test.zip。可以修改系统配置表来修改文件存放的目录。例:

 

# option_id, option_name, option_value

'1', 'file.rootDirectory', 'D:/uploadedFiles/'

 

则上传的文件会存放到D:/uploadedFiles/目录中。

6.2.1.9.            地区编码

地区编码控件用于支持对中国疾病预防控制中心发布的8位地区编码或者国家统计局发布的12位地区编码的数据的录入。在使用地区编码时,如果控件未指定字典,控件则使用调查任务内指定的地区编码试图绑定的字典。

 

默认情况下,地区编码控件使用中国疾病预防控制中心发布的8位地区编码的数据视图,当用户在定制调查问卷时【数据字典】属性中选择第一项效果相同。如果要使用国家统计局发布的12位区划编码视图,请在定制调查问卷时【数据字典】属性中选择第2项【国家统计局区划编码】。除此之外,在【数据字典】属性中还列出了系统内内置的所有符合【地区编码】和【国家统计局区划编码】数据视图的全部的数据字典。用户一旦选中了某个数据字典,则该控件将一直使用此字典,而无论在调查任务或者系统中地区编码数据视图绑定的是哪个数据字典。

 

在用户定制符合【地区编码】的数据字典,还可以为地区编码的结构指定编码形式。编码形式可以有两种方式,一是全数字的组合,每个数字依次表示每段(每级)的编码的长度,如果标准的中国疾病预防控制中心发布的8位地区编码的编码格式为2222。在此模式下,用00表示为上级编码在此级缺少的值,如省级编码在市级的编码则为00。还有一种模式则是用小数点和数字的组合形式,每个数字仍然是依次表示每段(每级)的编码的长度,但是和第一种模式不同的是如果高级的编码在低级的段上值可以为空,且每段之间用小数点分隔。如编码格式为2.2.2,则可能存在的编码为1111.11、和11.11.11

 

地区编码控件默认和用户本身的地区编码绑定,默认显示为用户本身所在的地区编码级别。如果设置地区编码控件为【受权限控制】,则在用户默认只能查看用户所在地区内的全部数据。受权限控制的地区编码控件无需授权用户即可查看其辖区内的全部数据,如果需要进行特殊的控制才需要在数据授权处进行特殊的授权控制。

        

地区编码控件在录入时默认显示用户本身的地区,可以通过“上级”和“下级”按钮对地区选择进行导航选择。当在地区编码的下拉框中选中第一项时,可以通过点击“上级”按钮让下拉选择框内加载其上级地区内的所有编码。当在地区编码的下拉框中选中非第一项时,可以通过点击“下级”按钮让下拉选择框内加载其选中的地区及其下级地区的所有编码。

 

6.2.1.10.       机构编码

机构编码用于中国疾病预防控制中心发布的标准的9位的机构编码的数据的录入。该控件必须和使用了标准的中国疾病预防控制中心8位地区编码的地区编码控件配合使用。

 

必须在【联动项目】属性内输入与之关联的地区编码控件的字段编号。在录入数据时,在指定的地区编码控件发生变化时,该机构编码构建列出的机构列表会随之发生变化。

 

如果该控件被设置为受权限控制的控件,且该用户被指定了所属机构,则该框将默认显示为用户的所属机构,否则用户可以主动选择。默认情况下该控件的【受权限控制】属性为选中状态。如果该用户机构直报用户且控件的【受权限控制】属性为选中状态,该控件显示为不可编辑状态,用户不能选择其他控件。

 

机构编码有一个重要的属性【显示模式】。显示模式有两个选项:

1)         按所属县区:指对机构进行属地化管理,管理单位是区县。用户在关联的地区控件中选择某一区县,就可以看到该区县的机构。

2)         按机构等级:按照用户选中的地区级别加载机构。目前系统支持国家级、省级、市级、县级和乡级五种单位级别,编码值依次为01234

6.2.1.11.       地图坐标

地图坐标控件用于打开在线地图让用户选中具体点后记录其选中地点的经纬度坐标值。在离线录入应用中,用户可以直接录入经纬度值,或者使用系统的自动定位功能获取当前位置的经纬度值录入。

 

         可以为地图坐标控件指定一个绑定的地区编码控件。当绑定了一个地区编码控件后,在用户新录入数据时,打开的地图界面会自动打开选中的地区编码的中心点附近。如果用户的浏览器支持HTML5的获取坐标的新特性,在新录入数据时,程序会尝试主动获取当前用户的坐标并在地图中打开。

        

         在定制问卷时,需要为地图控件选择所使用的在线地图服务的提供商,默认谷歌地图。推荐中国用户使用百度地图或者搜狗地图。

        

用户在录入数据时,可以通过点击【选择】按钮打开地图选择界面,如所示。在地图打开后,可以通过双击地图或者数遍滚轮来进行地图的缩放操作;要选中某处地点时,可以地图上单击鼠标左键,则如中展示的红色椭圆型标记会移动到用户选择的地点,并且地图会以此地点居中显示。用户选中完成后,需要点击地图中间上部的【确定】按钮,关闭地图并且传回选中地点的坐标。要情况已经选择的地图坐标,可以通过点击【清空】按钮执行清空。

 

在数据录入时,值存储的方式采用逗号分隔的经纬度坐标值。需要注意,由于国家政策要求等原因,所获取的经纬度值和选中地点的实际经纬度具有一定的差异,请按照您选择的地图供应商进行修正。此差异不影响在地图中的回显。

6.2.1.12.       数据选择

数据选择控件一般用于在当前调查表中关联的第三方调查表的数据。在问卷定制时,使用【表间关联控件】并且【关联实现类型】属性选择关联表时,最终生成的就是数据关联控件。在调查问卷定制管理模块中,组件的选择、调查问卷选择等功能都是使用的数据选择控件。

由于当前离线录入工具的实现限制,数据选择控件只能在在线录入平台上使用。用户在定制需要使用离线录入工具的问卷,请勿使用此控件。

 

可以通过点击选择按钮弹出目标数据选择界面,然后点击列表中记录后面的【选择】按钮进行选择。如要清空现有数据,点击【清空】按钮即可清空。用户需要具有打开的列表的调查问卷的浏览权限才能正确浏览数据,否则提示权限错误。用户只能目标调查问卷的浏览数据权限范围内的数据。

 

6.2.1.13.       子表容器

子表容器用于向当前问卷加入一个和当前记录是一对多关系的子表。使用子表控件时,其所有的子控件都在一行内展示。

 

操作子表控件时,通过点击标题栏上的【添加】按钮可以新加一行数据。通过点击每行数据后面的【删除】按钮则可以删除当前的行。

 

在导出excel时,子表控件会单独生成一个csv文件,并且通过调查表的数据ID和主表的数据保持关联。导出excel时,只会导出主表数据关联的子表数据。

 

在子表控件使用脚本时,应使用和调查问卷一样的脚本,即子表控件只支持BEFORE/AFTER RECORD事件,不支持BEFORE/AFTER ENTRY事件。在子表控件的控件上使用脚本时,如果需要访问和操作该子表内的其他控件,脚本获得时和脚本执行的行内同行的数据。在子表控件内可以访问和操作主调查表的控件。

6.2.1.14.       富文本编辑器

富文本编辑器时一个在线所见即所得的格式化文本编辑器,主要用于一段经过格式化的文本的录入。在讨论区、系统公告栏、文本标签控件的文字的输入时都可以使用。

 

在富文本编辑器内,可以设置文本的字体、大小、颜色和对齐方式等,也可以上传并显示图片和flash,或者显示外部图片和flash

 

92 富文本编辑器示例

6.2.1.15.       脚本编辑器

在流行病学动态数据采集平台中,支持对调查问卷和控件一级编写脚本。脚本录入时在脚本编辑器里进行的。脚本编辑器不仅提供脚本字符的录入,供提供对录入的脚本的以不同的颜色的功能。

 

脚本编辑器有两种编辑模式:

1)         快捷设定

快捷设置是为常用的脚本命令提供一个图形化的界面,供用户用于快速设定所需要的脚本。当前快捷设定在问卷级只支持【重复录入】选项,即REPEAT命令;在控件级别除【重复录入】选项外,还支持设置允许录入的最大值和最小值的范围,即RANGE命令。

 

2)         脚本编辑

脚本编辑按钮直接打开一个脚本编辑器,供用户直接录入、修改问卷或者控件相关的脚本命令。脚本录入、编辑完成后,可以点击右上角的【X】按钮关闭脚本编辑器返回主界面。如需再次编辑脚本,直接再次点击【脚本编辑】按钮即可重新打开脚本编辑器并且将加载上次最终修改后的脚本。脚本编辑器界面如图 40所示。

 

6.2.1.16.       样式编辑器

样式编辑器用于设置调查问卷或者控件的显示的样式。样式编辑器采用所见即所得的方式提供设置问卷样式的编辑功能。对于每个调查问卷或者控件,对于其在数据编辑界面、查询界面、列表界面等实用场所的不同,系统提供了多种主题的编辑方式。

 

93 调查问卷的样式设置

 

94 控件的样式设置

 

通常情况下,样式编辑器提供了如下的样式主题,其作用范围及意义如下所示:

1)         基础:设定该控件的基础样式,下面的各个设定是基于此之上的

2)         名称:设定数据录入界面的文字列的显示的样式

3)         前置:设置前置文本的显示样式

4)         后置:设置后置文本的显示样式

5)         控件:设置数据录入界面和列表界面的查询区域的控件的样式

6)         列表:设置数据列表界面的在列表中显示数据的样式

 

针对每个主题,每个按钮的功能依次为:

1)         字体

2)         字体大小

3)         文字颜色

4)         背景颜色

5)         设置字体加粗,再次点击可以取消效果

6)         设置字体斜体,再次点击可以取消效果

7)         设置下划线,再次点击可以取消效果

8)         设置删除线,再次点击可以取消效果

9)         设置对齐方式

 

除此之外,最下方的按钮提供清除当前问卷或者模板的所有样式设置的功能。

6.2.2.   键盘事件及导航

除去在调查问卷设计界面中支持CTRL+CCTRL+VCTRL+Z键用于复制、粘贴、回复操作,在调查问卷数据录入界面,还支持一系列的键盘事件,并且提供根据键盘事件跳转到上一个或者下一个控件的键盘事件导航。

 

需要注意,要是键盘事件生效,必须保证一个控件处于获得焦点的状态。

6.2.2.1.            快捷键

在数据录入界面,支持下列键:

1)         F9:如果当前获得了输入焦点的控件被指定了数据字典,按下F9可以快速列出所有的字典的数据。

2)         CTRL+ENTER:结束当前的数据录入,提交调查问卷数据,系统会弹出对话框请用户确实是否提交数据。

6.2.2.2.            键盘导航

键盘导航是指用户在录入数据时,通过按下某个键使输入焦点从当前控件跳转到下一个控件或者上一个控件。在文本框、日期录入等控件中,当数据录入到当前控件指定的长度后,系统将自动跳转到下个控件。当系统当前支持如下的键盘按键导航:

 

通常情况下,系统支持如下的键盘导航:

1)         跳转到下一个控件:回车键、Tab键(制表键)、下光标键、右光标键

2)         跳转到上一个控件:ALT+回车键、左光标键、上光标键

 

由于各个控件输入数据及实现的要求,下列控件在处理键盘导航事件时存在以下例外:

1)         文本框:左光标键和右光标键用于在文本框内的输入光标在文字之间来回移动

2)         多行文本框:回车键用于文本框内内容输入换行而不是切换控件

3)         日期录入:左光标键和右光标键用于在文本框内的输入光标在文字之间来回移动

4)         下拉选择:上光标键、下光标键用于在选项之间切换

5)         多项选择:左光标键、右光标键用于在各个选项之间切换输入焦点,当某选项获得焦点之后,按下空格键可使该选项处于选中状态或者取消选中状态。

6)         单项选择:左光标键、右光标键用于在各个选项之间切换输入焦点,当某选项获得焦点之后,按下空格键可使该选项处于选中状态或者取消选中状态。

7)         列表选择:上光标键、下光标键用于在选项之间切换并且选中,左光标键和右光标键用于从该列表框移动到另外的列表框。

8)         文件上传:左光标键和右光标键用于输入焦点在按钮之间切换

9)         地区编码:上光标键、下光标键用于在选项之间切换

10)     机构编码:上光标键、下光标键用于在选项之间切换

11)     地图坐标:左光标键和右光标键用于输入焦点在按钮之间切换

12)     表间关联:左光标键和右光标键用于输入焦点在按钮之间切换

6.2.3.   分页浏览列表和导出excel

在系统中,所有的数据列表都时分页显示的,每页显示20条数据,用户可以通过数据列表下方的分页浏览工具栏进行页面导航浏览操作。

 

95 分页浏览工具栏

 

         在分页浏览工具栏中,第一个按钮【导出excel】是将数据整个列表的数据导出成数据文件供用户下载。数据文件是一个zip压缩文件,调查问卷的数据会调查问卷的名字作为文件名保存在一个csv文件中。如果调查问卷存在子表(见子表控件),则每个子表的数据也会保存在以子表名称为文件名的csv文件中。子表数据和调查问卷主表数据通过调查问卷的数据主键关联。子表数据只包含当前导出调查问卷主表数据关联的数据。

        

         在导出的csv文件中,调查问卷的所有的控件的信息都会被导出。控件的显示名作为列名称。如果该控件绑定了数据字典(如多选、单选、地区编码、机构编码等控件),在列出输出的数据字典里指定的保存值,同时在csv文件的最后会议两个$符号包裹控件显示名称的列,里面输出的是数据字典里显示的值。如果用户在定制问卷时勾选了追踪用户操作,则csv文件还会包含数据新建时间、最后修改时间等信息。

        

在分页浏览工具栏中,<<】按钮让当前列表跳转到第一页。【<】按钮让当前列表向前跳转一页。【>】按钮使当前列表跳转到下一页。【>>】按钮使当前列表跳转到最后一页。文字信息显示的依次为当前页数/总页数(总记录行数)

 

列表中的数据项是由用户在定制问卷时指定的。如果在定制问卷时,控件属性中的【列表字段】被勾选了,则该控件会作为列表的一列出现。

 

6.3.  系统通用功能

本章节中列出的信息为所有的调查任务(包含调查问卷定制管理模块)中的都会用到的功能。公告栏等操作请参见文本第二部分的相关章节。

6.3.1.   系统登录

在录入或者操作管理调查任务之前,都需要先登录到调查任务。在浏览器里输入调查任务网址之后,首先打开的是调查任务的用户登录界面,如 96所示。其中红色边框内的内容是当前访问的调查任务的名称,用户在登录时需要特别注意。

96 调查任务登录界面

 

         用户在用户名文本框中输入登录用户名,在密码框中输入用户密码,然后点击【登录按钮】即可执行登录。如果登录成功,则界面跳转用户主菜单。登录失败则返回登录界面。

6.3.2.   用户注册

在用户登录界面,点击【注册】按钮,系统将跳转到系统服务条款确认界面,如 97所示。

97 服务条款确认界面

 

请仔细阅读服务条款,如果同意继续请点击【本人已经阅读并且同意遵守】按钮,系统跳转到用户信息注册界面,如 98所示。

 

98 用户信息注册界面

 

请仔细填写各项信息,然后点击【申请注册】按钮提交注册申请。请注意填写电子邮箱信息。如果用户填写了电子邮箱信息,则当用户注册被审核通过后,系统将发送邮件到此电子邮箱中通知用户。

 

用户提交申请后,调查任务的管理员用户可以到用户管理的浏览审核注册信息功能处审核注册信息。

6.3.3.   调查任务主菜单

用户在登录界面登录成功后,系统将跳转到调查任务主菜单界面,如 99所示。

 

99 调查任务主界面

        

         在调查任务主菜单界面,上部窗口时调查任务信息窗口,显示的有调查任务的名称,当前登录用户的信息。在上部窗口的下部是分组菜单工具栏,列出调查任务内的各个功能的分组。用户可以再发布调查任务时设定。

 

         在调查任务主菜单界面左边窗口时当前调查任务分组内的菜单窗口。用户点击分组菜单工具栏上的分组菜单项后,菜单窗口将显示对应的具体的菜单项。在菜单项上点击鼠标,在右边的工作区窗口将显示对应的操作界面。

        

         点击分组菜单工具栏右边的【讨论区】按钮,工作区窗口将显示讨论区讨论列表。点击【退出系统】按钮,用户将退出当前登录。

6.3.4.   用户管理

用户管理功能在【系统管理】功能分组中。其包含以下入口菜单:

 

1)         新建用户:点击【新建用户】菜单项,系统将打开用户信息界面。填写完成点击保存按钮,系统将创建一个可登录的新用户。

2)         浏览用户:打开浏览用户列表,用户可以执行修改用户信息、删除、授权等操作。

3)         批量创建用户:打开批量创建用户界面,录入完成后将执行批量创建用户操作。

4)         修改密码:打开修改密码界面,录入修改信息即可修改密码等信息。

5)         浏览审核注册信息;打开浏览注册用户信息浏览界面,可以根据注册信息创建用户

6.3.4.1.            用户信息界面

100 用户信息界面

1)         用户登录账号:用于登录的用户账号,可以为中文,但是要求调查任务内全局唯一。

2)         用户显示名:用户的描述性名字

3)         密码:登录密码

4)         地区:用户所属地区级别,用户控制可访问的数据范围

5)         机构:用户所属机构,

6)         机构直报用户:如果是直报用户,则用户只能访问该机构的数据。机构直报用户只能是县级用户用户,并且机构项不能为空。

7)         联系方式:用户的联系信息。最好填写电子邮箱,在用户修改密码等操作时,系统将通过电子邮件发出通知。

8)         用户分组关系:用户所属的分组。每个分组包含了数据权限和功能权限,和用户的地区属性、直报用户属性组成了完整用户授权信息。注意管理用户只能修改自己添加的授权信息。

6.3.4.2.            浏览用户列表

101 浏览用户列表

 

1)         用户只能修改、删除自己创建的用户。

2)         对于其他管理用户创建的用户,用户为其增加、修改其增加的授权。

6.3.4.3.            批量创建用户界面

102 批量创建用户界面

1)         地区:在哪个地区范围内生成用户

2)         创建用户类型:地区-只根据地区编码生成用户;机构-生成地区编码和机构编码用户

3)         级别:生成那些级别的地区编码的用户,显示的内容和用户本身的级别有关。

4)         用户登录账号生成规则:在用户账号生成规则指定用于生成用户登陆账号的模式,用{0}表示当前用户生成用户的地区编码或机构编码。如输入lr{0}yh,且四川省的地区编码为51000000,则生成的四川省省级用户的登录名为lr51000000yh

5)         用户显示名生成规则:用户名生成规则中指定用于生成用户显示名的模式,用{0}表示当前用户生成用户的地区名称或机构名称。如输入“{0}用户”,则生成的四川省省级用户的显示名为“四川省用户”。

6)         初始密码:生成的用户的初始密码

7)         用户分组关系:生成的用户所拥有的初始权限。

 

如果需要生成的用户已经存在,则此操作只会将此次新增的用户分组关系附加到旧用户上。

6.3.4.4.            注册用户信息浏览界面

103 注册用户信息浏览界面

 

1)         查看注册信息:查看用户注册时提交的信息

2)         生成用户:根据用户注册信息打开用户信息界面创建用户,管理员需要为注册用户额外指定权限等。

3)         删除注册信息:删除当前注册信息。

 

已经审核通过的注册信息不显示在列表中,但是会在导出excel时导出。

6.3.5.   用户组管理

系统实现了类似于基于角色的权限权限管理模型,用户组即对应于模型中角色对象。用户组管理功能在【系统管理】功能分组中。其包含以下入口菜单:

1)         新建用户组:打开用户组信息界面创建新的用户组

2)         浏览用户组:打开用户组信息浏览界面

 

一个用户可以拥有多个用户组,多个用户组之间的关系式或的关系,即用户拥有所有用户组指定的功能权限的全集,所有数据权限指定的合集。

6.3.5.1.            用户组信息界面

104 用户组信息界面

1)              用户组名:名字

2)              用户组描述:描述信息

3)              共享级别:默认用户创建后对其他用户不可见,但是勾选了此处够将向用户管理辖区内的其他的指定级别的用户开放此用户组信息。

4)              允许的操作:允许用户操作的功能:

a)         应用程序:选择调查任务内的发布的问卷和管理模块

b)         操作:指定的应用程序内的可控制的操作列表,允许操作则勾选即可

c)         用户数据隔离:如果该问卷启用了“追踪操作”特性,可在此处选择:

                                                                   i.              数据不共享:用户只能查看、编辑、删除自己录入数据

                                                                  ii.              只读共享:用户能浏览、查看所有权限内的数据,但是只能修改和编辑自己录入的数据

                                                                iii.              读写共享:用户只能查看、编辑、删除所有权限内的数据

5)              数据权限授权:对受权限控制的字段的数据权限进行授权:需要注意,默认情况下地区编码和机构编码都是按照用户访问辖区内的数据来控制,用户不需要特殊控制。

a)         应用程序:选择调查任务内的发布的问卷和管理模块

b)         数据表字段:选定的调查问卷内授权控制的字段列表,选择一个

c)         权限授权:授权的值。允许使用“操作符.值”的方式设置复杂的数据查询逻辑,支持的操作符有 >”,“<”,“LIKE”,“=”等,如 LIKE.11*表示所有以11开头的数据。同时可以使”${expression}”方式的脚本,脚本内可以操作用户、问卷、和调查表信息

6.3.5.2.            用户组信息浏览界面

105 用户组信息浏览界面

 

         用户只能修改和删除自己创建的用户组。用户可以浏览到别的用户共享出来的用户组。

6.3.6.   简单报表定制

系统内支持简单的报表定制功能,遵循的原则还是专业人员设计报表,其他用户直接查看定制出的报表查看结果。设计出的报表都是根据当前系统内的数据实时计算出的结果。除用户自己定制出的报表外,设计出的报表需要额外的授权才能访问。

 

简单报表定制功能在【系统管理】功能分组中。其包含以下入口菜单:

1)         新建简单报表:打开简单报表信息界面,设计新的报表

2)         浏览简单报表:打开简单报表浏览界面,可以修改、删除报表。

 

用户只能修改和删除自己设计的报表,但是可以查看别人设计的报表。用户在查看报表时,直报查看到在自己的数据权限范围内的数据。

 

6.3.6.1.            简单报表信息界面

106简单报表信息界面

 

1)         报表名:报表的名字,同时也是报表菜单项的名字

2)         业务规则:当前调查任务的所有调查问卷主表的名字,需要选择一个用户进行统计的调查表。

3)         查询条件:选定的调查表里用于数据查询过滤的字段。

4)         数值列:作为报表的统计项的定义:

a)         列名:统计指标的显示名

b)         字段:用以计算的调查问卷的字段(变量)

c)         计算方法:

                         i.              求和:求取所有符合条件的数据的和

                       ii.              计次:计算所有符合条件的数据出现的次数

                      iii.              最大值:计算所有符合条件的数据出现的最大数

                      iv.              最小值:计算所有符合条件的数据出现的最小数

d)         只计算机唯一值:如果数值已经出现过则不再参与计算

5)         分组列:用于展开的选项的定义:

a)         列名:显示的名字

b)         字段:用于分组的字段。在调查问卷中所有单项选择、下拉选择、地区编码、机构编码、时间/日期都可以作为分组列,各类型字段展开规则:

                         i.              单项选择:以其数据字典的数据项展开

                       ii.              下拉选择:以其数据字典的数据项展开

                      iii.              地区编码:以查询字段中的选中的地区编码展开,如果查询字段中没有地区编码,则以用户的级别展开

                      iv.              机构编码:和地区编码类似,只不过在区县级列出所有的机构而非乡镇级地区编码

                       v.              时间/日期:小于一个月的日期以日展开,小于一年的范围以月为单位展开,其他以年为单位展开。

c)         展开方向:

                         i.              横向:横向的展开各项数值列,如 107所示

107 横向列示例

 

                       ii.              纵向:纵向展开各项数值列,如 108所示

 

108 纵向列示例

 

6)         数据约束:除去用户的数据权限外,作用于此报表结果计算上的额外的数据约束。数据约束的定义同数据权限定义

6.3.6.2.            简单报表浏览界面

109 简单报表浏览界面

用户只能修改和删除自己设计的报表,但是可以查看别人设计的报表。

6.3.6.3.            查看报表结果界面

110 查看报表结果界面

 

所有用户可以查看的报表都在【统计分析】菜单分组中的【统计分析】菜单下。用户直接点击简单报表的名称即可在右边工作区打开报表结果查看界面。

 

报表结果查看界面的上方时查询条件区域,显示用户在设计问卷时勾选的查询字段。需要注意所有数据类型是数字和日期的数据都可以按范围查询。查询区域的下方则是结果显示区域,用户可以点击【导出excel】按钮导出报表结果。

6.3.7.   数据表比对

为支持传统的双录入核查等功能,系统内置了一个数据表对比的功能,界面如 111所示。

111 数据表对比界面

         查询条件区各个字段的意义及作用如下:

a)         源数据表:用于对比的数据表源表

b)         目标数据表:用于对比的数据表目标表

c)         关联匹配字段:用于判断两个表中的数据是不是为同一条数据的字段,此处指列出两个调查表都有的同名的字段。常用的各类编号,对于人的信息则可以指定身份证号等。

d)         比较值不同的字段:用于比较两个调查表的数据是否一致的字段,此处指列出两个调查表都有的同名的字段。

e)         数据范围:

                         i.              只列出源表和目标表都有匹配值且相等的数据:在源表和目标表里关联匹配字段值都存在的数据才纳入对比

                       ii.              列出源表有而目标表没有的数据:在源表里有的而不管目标表里有没有的数据都纳入对比

                      iii.              列出目标表有而源表没有的数据:在目标表里有的而不管源表里有没有的数据都纳入对比

 

数据列表中各个字段的意义如下:

1)         源表主键值:当前记录的源表的主键值

2)         目标表主键值:当前记录的目标表的主键值

3)         关联匹配字段值:在关联匹配字段中指定的各个字段在当前记录的值

4)         值不同字段:当前记录中不同值不同的字段,以逗号分隔。

 

为实现双录入核查,请在发布调查任务时将同一个调查问卷发布到不同【问卷分组】(如 112所示),以便在进行数据核查时方便区分调查表。

 

112 双录入核查调查任务发布示例

7.      控件定制属性参考

7.1.  问卷类属性

7.1.1.   调查问卷模板属性

1)         模板标号:模板的编号,用于在数据库创建表和脚本里访问使用

2)         模板名:模板额显示名

3)         模板描述:文字性描述

4)         主键名:主键的显示名

5)         主键可查询:勾选则在列表界面出现主键的查询条件

6)         分页录入:是否启用分页式录入。如果启用用分页式录入,则在数据录入时,调查表的每一行都显示为单独的一页,用户可以通过上一页、下一页按钮进行页面之间的导航。定制用户也可以通过在页面以脚本控制跳转到某控件,则该控件所在的页会自动显示出来。如果用户需要在一行内显示多行内容,可以使用多行容器、矩阵容器等容器类控件。

7)         样式

8)         文本列宽:设置调查问卷数据录入界面名称列的宽度,可以使百分比,也是数字(单位为像素)。默认宽度为25%

9)         数据列表样式设置:设置数据在列表时额外的样式设置,以第一条起作用的规则为主。

a)         行匹配规则:范围逻辑值的脚本表达式,可以访问调查问卷的所有的字段,如果返回值为真,则以此样式作为输出样式。如果规则为空,则默认为所有数据都符合。

b)         展示样式:可以设计文本的大小、字体等样式

10)     文本行高:调查问卷录入界面中每行的高度,可以为百分比,表示和默认数值之间的关系。也可以为数字,单位为像素。默认为30

11)     逻辑删除:如果勾选则用户在删除数据时并非直接删除数据,而将其状态设置为已删除状态。默认列表查询时不可见,但导出excel时可以导出。

12)     查询删除状态:【逻辑删除】属性勾选时可见,如果勾选则在查询条件区增加一个对查询状态的查询。

13)     允许的操作:对当前调查问卷的数据支持的操作:新建、修改、删除、查看、浏览、审核、导出、打印、暂存,勾选则该功能在调查问卷中可见

14)     新建功能名:【允许的操作】属性中【新建】项勾选时可见,可以使用逗号分隔的字符串创建多个修改功能,同时配合脚本完成简单的流程操作。

15)     修改功能名:【允许的操作】属性中【修改】项勾选时可见,可以使用逗号分隔的字符串创建多个修改功能,同时配合脚本完成简单的流程操作。

16)     删除功能名:【允许的操作】属性中【删除】项勾选时可见

17)     查看功能名:【允许的操作】属性中【查看】项勾选时可见,可以使用逗号分隔的字符串创建多个修改功能,同时配合脚本完成简单的流程操作。

18)     查询功能名:【允许的操作】属性中【查询】项勾选时可见

19)     审核功能名:【允许的操作】属性中【审核】项勾选时可见,可以使用逗号分隔的字符串创建多个修改功能,同时配合脚本完成简单的流程操作。

20)     查询审核状态:勾选则可以再列表的查询区中增加对审核状态的查询

21)     记录操作痕迹:勾选时则会增加新建用户ID、新建用户名、新建时间、最后更新用户id,最后更新用户名、最后更新时间等字段;如果启用了审核功能,则会增加审核用户id,审核用户名、审核时间等字段;如果启用了逻辑删除功能,则会增加删除用户id,删除用户名、删除时间等字段。这些字段都会在用户操作数据自动填充,并且在导出excel时导出。

22)     查询操作时间:【记录操作痕迹】勾选时可见。如果勾选则在查询条件区增加【记录操作痕迹】勾选时各个时间的查询。

23)     共享:是否可以让他人可见。其他人只能查看或者以此新建一个调查问卷模板,不能修改此调查问卷模板。

24)     脚本:问卷级的脚本

25)     组合查询:当前支持对地区编码和日期录入控件的将多个控件组合成一个查询条件的组合选择式查询。

7.1.2.   组件属性

1)         组件名:   组件名

2)         组件描述:文字性描述

3)         共享:是否可以让他人可见。其他人只能查看或者以此新建一个组件,不能修改此组件。

7.1.3.   数据字典属性

1)         字典编号:模板的编号,用于在数据库创建表和脚本里访问使用

2)         字典名:显示名

3)         字典描述:文字性描述

4)         主键名:主键的显示名  

5)         主键可查询:   是否在列表界面增加对主键的查询条件

6)         数据视图:当前数据字典支持的数据试图:

a)         文本框查询录入:用于文本框的特殊数据字典

b)         地区编码:用于地区编码控件的特殊字典

c)         统计局地区编码:用于地区编码控件的特殊字典

d)         机构编码:用于机构编码的特殊数据字典

7)         查询字段:数据视图选择为文本框查询录入时可见。指定用户输入的查询条件用户哪些字段的查询。

8)         编码规则:当数据试图选择为地区编码时可见。编码形式可以有两种方式,

a)         全数字的组合,每个数字依次表示每段(每级)的编码的长度,如果标准的中国疾病预防控制中心发布的8位地区编码的编码格式为2222。在此模式下,用00表示为上级编码在此级缺少的值,如省级编码在市级的编码则为00

b)         小数点和数字的组合形式,每个数字仍然是依次表示每段(每级)的编码的长度,但是和第一种模式不同的是如果高级的编码在低级的段上值可以为空,且每段之间用小数点分隔。如编码格式为2.2.2,则可能存在的编码为1111.11、和11.11.11

9)         存储字段:保存在调查表中的值的字段

10)     显示字段:查看和导出excel时显示的值的字段

11)     共享:是否可以让他人可见。其他人只能查看或者以此新建一个数据字典,不能修改数据字典。

7.2.  控件属性

此处列出的是所有属性的参考。需要注意,当控件出现在容器类控件的内部时,其某些属性可能不可见,编辑其值也不产生任何作用。

7.2.1.   通用属性

1)         字段编号:该模板在数据库内部生成的字段的名字,请使用字母开头且只能包含字母、数字和下划线,最长40字符。请不要使用order\from等数据库的关键字。在脚本中可以使用此编号直接操作此控件并且获得其值。

2)         显示名:控件显示的名字,用于默认的文件左侧显示信息和导出excel等。

3)         字段长度:此控件最多能容纳的数据的长度。

4)         样式:设置控件在列表、录入表单等处的字体大小、颜色等样式

5)         显示文本:在默认的问卷布局中,在数据录入左侧显示该控件的显示名。如果不勾选则直接显示为数据录入控件并不在左侧显示控件的显示名。

6)         值可以空:是否必填,不勾选为必填字段

7)         查询字段:如勾选,则在数据管理界面在此控件作为数据过滤条件。

8)         是否列表字段:是否在列表列出,勾选为列出

9)         列表宽度:【是否列表字段】勾选时可见。如在数据列表中列出,则列表显示的宽度。支持录入百分比,如”10%,如不带百分比则默认单位为像素。

10)     值唯一:勾选则不允许重复录入。

11)     允许编辑:不勾选则控件为不可编辑状态

12)     前置文本:在数据录入控件的前方显示的提示信息

13)     后置文本:在数据录入控件的后方显示的提示信息

14)     数据字典:该控件使用的数据字典,可以使用系统内预置的数据字典,也可以选取问卷内的设置好的问卷字典,也可以自行为该控件定义数据字典。如果在此选择为【自定义字典】时,请在属性编辑区下方的自定义字典区设置字典的详细内容。

15)     联动项目:为机构编码控件指定管理的地区控件的编号。

16)     提示信息:在录入调查问卷数据时,当用户将鼠标防止到控件上时,系统弹出的提示信息。如果用户未设定,则默认提示控件名称。

17)     脚本:可以使用脚本编辑器编辑详细的脚本。此处为控件级脚本,支持 BEFROE/AFTER ENTRY事件。

 

当控件作为调查表的直接子控件,或者作为多行容器的子控件时,在控件的左侧会显示出控件的名称。该名称是一个文本标签控件,其编号为控件的控件编号加上”$NAME”。举例来说,如果想要隐藏掉Field_1名称,可以使用HIDE Field_1$NAME的命令。

 

如果在控件的属性中设置了前置文本或者后置文本,在最终生成的问卷中会为前置文本和后置文本创建一个文本标签控件(前置文本的文本标签控件的控件编号为控件的控件编号加上”$PREFIX”,后置文本的文本标签控件的控件编号为控件的控件编号加上”$SUFFIX”),并且使用单行容器将控件本身和生成的文本标签封装在一起(单行容器的控件编号为控件的控件编号加上”$BLOCK”)。在使用HIDE等命令操作控件时,需要根据实际的需要指定实际的控件编号。例如当控件Field_1的有前置文本或者后置文本时,想要隐藏掉Field_1及其相关的所有内容,需要使用 HIDE Field_1$BLOCK这个命令。

7.2.2.   各控件特性属性

此处列出所有控件不包含在公共属性中的特性属性及其作用。

7.2.2.1.            文本标签

文本标签的【显示名】属性编辑框时富文本编辑器。

文本标签在脚本中只可用于控制显示状态,不能用于获取值。

7.2.2.2.            文本框

1)         数据类型:文本框内可以输入的数据的类型

2)         小数位数:数据类型为小数时可见。小数点后数字的位数。

3)         文本行数:数据类型为自由文本时可见,如果输入值大于1则显示为多行文本框控件。

4)         格式:数据类型为自由文本时可见。通过正则表达式的形式约束字符串的格式。可以在系统字典类的TEXT_FORMAT字典里新增选项。

5)         保密字段:如果勾选了,则只有数据录入者和调查任务管理员可以查看已经录入的数据里此字段的值。

7.2.2.3.            日期录入

格式:日期显示的格式。在中国一般使用yyyy-MM-dd的格式。其中yyyy表示4位数的公元年数,MM表示从01122位的月份,dd则表示从01到最大31年的月内日期,短横线(-)时日期的分段符,也可以使反斜杠(/)分隔符。用户可以定制问卷自定义日期的显示格式,比如将年月日的各段调整顺序等,如MM/dd/yyyy等。请注意日期格式的设置是大小写敏感的。

7.2.2.4.            下拉选择

联动项目:可以输入当前问卷多选控件或者列表选择控件的字段编号。则被指定的控件的选中项左为此控件的数据字典。

7.2.2.5.            是否选择

1)         选中时显示:列出所有调查表的字段,如果勾选则当此控件处于选中状态时其所处的行可见。

2)         未选中时显示:列出所有调查表的字段,如果勾选则当此控件处于未选中状态时其所处的行可见。

7.2.2.6.            多项选择

联动项目:可以输入当前问卷多选控件或者列表选择控件的字段编号。则被指定的控件的选中项左为此控件的数据字典。

 

7.2.2.7.            单项选择

联动项目:可以输入当前问卷多选控件或者列表选择控件的字段编号。则被指定的控件的选中项左为此控件的数据字典。

 

7.2.2.8.            列表选择

1)         宽度:控件的显示的宽度,可以为百分比,表示其占父控件显示宽度的百分比;或者输入纯数字,单位为像素。

2)         高度:控件的显示的高度,可以为百分比,表示其占父控件显示高度的百分比;或者输入纯数字,单位为像素。

3)         联动项目:可以输入当前问卷多选控件或者列表选择控件的字段编号。则被指定的控件的选中项左为此控件的数据字典

7.2.2.9.            文件上传

无特殊属性。

7.2.2.10.       地区编码

无特殊属性。

         数据字典处只列出系统内所有实现了地区编码数据视图的数据字典。

7.2.2.11.       机构编码

 

1)         数据字典:处只列出系统内所有实现了机构编码数据视图的数据字典。

2)         显示模式:机构编码控件和地区编码控件关联显示的方式。

                         i.              按所属县区:指对机构进行属地化管理,管理单位是区县。用户在关联的地区控件中选择某一区县,就可以看到该区县的机构。

                       ii.              按机构等级:按照用户选中的地区级别加载机构。目前系统支持国家级、省级、市级、县级和乡级五种单位级别,编码值依次为01234

3)         联动项目:必须是问卷内地区编码控件的字段编号。

 

7.2.2.12.       地图坐标

1)         地图服务:选择在线服务提供商,中国用户建议选择百度地图或者搜狗地图。

2)         联动项目:必须是地区编码字段编号。当被关联的地区编码控件所使用的数据字典包含geocenter属性时,打开地图时可以直接定位到选中的地区编码的坐标值。

7.2.2.13.       矩阵容器

1)         无边框:勾选时则在调查问卷内该矩阵容器的不显示边框

2)         显示列名:是否输出列名。

3)         列名:通过此子表控件的行数指定矩阵容器显示多少列

a)         显示名:当显示列名勾选时显示的名称,可以不填写。

b)         列表宽度:此列所占的宽度。可以为百分比,表示其占整个矩阵控件显示宽度的百分比;或者输入纯数字,单位为像素

4)         显示行名:是否输出行名

5)         行名:过此子表控件的行数指定矩阵容器显示多少行

a)         显示名:当显示行名勾选时显示的名称,可以不填写。

6)         列表宽度:整个矩阵控件显示的宽度。可以为百分比,表示其占父控件显示高度的百分比;或者输入纯数字,单位为像素。

7.2.2.14.       单行容器

无特殊属性。

7.2.2.15.       多行容器

无特殊属性。

 

7.2.2.16.       子表容器

1)         显示标题:不勾选则生成的子表控件上不会出现标题栏,因此也没有【操作】栏上的【添加按钮】,可以通过脚本的ADDRECORD命令新增行。

2)         显示操作:不勾选时不显示最右边的【操作】一列,即页面上无【新增】和每行数据后面的【删除】按钮。可以通过脚本的ADDRECORDREMOVERECORD命令以及RECORDCOUNT函数等来控制子表控件数据行。


 

8.      脚本参考

在流行病学动态数据采集平台中,为了兼容Epidata软件生成的Rec文件和Chk文件,在Epidata软件的Chk脚本的基础之上,适应Web系统的特性,提供了一套兼容chk脚本的脚本引擎。用户可以像在Epidata软件中编辑chk脚本一样,在系统中为调查表和控件设置各个脚本。脚本的录入和编辑请参见问卷定制的相关章节。

 

本章将介绍脚本的技术信息,并且列出脚本支持的所有特性。

 

在系统中,除去系统内置的特殊变量外,脚本的编写是不区分大小写的。

 

在本章节中,一般以Field_开头的都是假定在脚本代码所在的调查问卷里定义好的一个特定类型的控件。{字段}表示这个一个调查问卷内存在的字段编号,{表达式}表示一个值表达式。

8.1.  基本概念

所谓脚本,是指在流行病学动态数据采集平台中,用户可以通过编写一段符合特定规则的文字,对调查问卷的数据进行校验或者响应用户的某个操作进行操作问卷的数据和显示状态的。

 

脚本时用户在定制调查问卷时编写的,在数据录入用户在录入数据时被解释执行的。因此在定制问卷时编写的脚本并不能看到实际的效果,需要通过预览来验证在实际运行时调查问卷结合脚本执行的实际效果。

 

通常来说,脚本也是一门简化的编程语言。在流行病学动态数据采集平台中编写脚本之前,最好先掌握以下几个基本概念。

8.1.1.   基本数据类型

在流行病学动态数据采集平台中的脚本引擎中,每个变量(控件的数据)都是类型的,比如在设计文本框控件时,可以选择文本框控件内保存的数据的类型。在流行病学动态数据采集平台中的脚本引擎中,只有以下四种数据类型:

1)         整数

2)         小数(浮点数)

3)         逻辑值(Boolean类型)

4)         字符串

 

Epidata软件中,将日期作为小数处理,将其换算为自18991231日以来的天数。在流行病学动态数据采集平台中的脚本引擎中为了和Epidata的脚本保持兼容,对日期类型也做类似的处理。

 

各个数据类型的值是可以相互转换的,在下面函数部分会有专门的类型转换函数的介绍。

8.1.2.   命令

流行病学动态数据采集平台中的脚本引擎中,每个起作用的代码块都做为一个命令的形式存在的。通常情况下,一个标准的代码块是以命令名开头,后面跟以参数和子命令,如:

 

LET Field_1=1

 

在这个代码块中,命令是LETLET命令式为变量复制的作用,通常是可以省略的。这个代码块的意义是给变量赋值为整数1

 

有一个类命令的代码行数超过了一行,则需要以END作为代码块的结束。如:

 

JUMPS

         1 Field_1

         2 Field_2

END

8.1.3.   表达式

表达式,是由数字、算符、数字分组符号(括号)、自由变量和约束变量等以能求得数值的有意义排列方法所得的组合。约束变量在表达式中已被指定数值,而自由变量则可以在表达式之外另行指定数值。------http://baike.baidu.com/view/420676.htm

        

         流行病学动态数据采集平台中的脚本引擎中的表达式是用操作符将各个变量相连并且计算出某个结果的脚本。例如:

        

Field_1+Field_2

 

一个变量本身也可以算作是表达式。例如对于LET命令来说,为变量赋的值可以一般是一个表达式计算后的结果,也可以使一个一个变量。如:

 

LET Field_1=1

 

LET Field_1=Field_2+Field_3

8.1.4.   函数

函数是指在系统内给定某些输入给出一个特定的计算结果的规则定义。函数可以用在表达式里,或者本身就是作为一个表达式。

 

函数的调用一般是函数名+前括号+逗号分隔的参数列表+后括号。如:

 

ISBLANK(Field_1)

 

POS(Field_1,”a”)

8.1.5.   操作符

操作符是指将变量以某个计算机规则进行计算的表达。在系统支持三类操作符:

1)         算术运算符

2)         逻辑运算符

3)         关联运算符

8.1.6.   变量

每个在调查问卷中定义的数据控件在脚本中都是可操作的对象,称之为变量。除去用户定义的变量外,还有一些系统内置的变量。

8.1.7.   事件

对于BEFROE/AFTER RECORD/ENTRY命令,也可以称之为调查问卷/控件的BEFORE/AFTER事件。写在其中的代码只有在该事件发生时才会执行。

8.2.  命令参考

在系统存在两类的名,一类是声明式命令,这类命令式需要编写在BEFROE/AFTER RECORD/ENTRY代码块之外的;一类是操作类命令,是需要结合IF等条件判定并且需要编写在BEFROE/AFTER RECORD/ENTRY代码块内部的。如果操作类命令没有编写在BEFROE/AFTER RECORD/ENTRY代码块内,系统会自动将其移到AFTER RECORD/ENTRY事件内执行。

8.2.1.   ADDRECORD

为指定的子表控件添加一行数据。编写方式:

 

ADDRECORD {子表控件ID}

 

例:

ADDRECORD SUB_DATATABLE

 

ADDRECORD命令需要写在BEFROE/AFTER RECORD/ENTRY代码块中。

8.2.2.   ASSERT

用于在提交调查问卷记录验证数据是否符合校验要求。此命令有根据使用的地方不同有两种编写方式:

1)         用在调查问卷的代码里:ASSERT {字段},{表达式},”{提示消息}”

2)         用在控件的代码里:ASSERT {表达式},”{提示消息}”

 

在提交数据时,当表达式计算的结果返回逻辑的假值时,系统将显示命令中指定的提示信息,并且将焦点跳转到{字段}指定的控件上,或者代码所在的控件。例如:

 

写在调查问卷的代码里

ASSERT Field_1,Field_1>10,” Field_1必须大于10”

 

写在控件的代码里:

ASSERT Field_1>10,” Field_1必须大于10”

 

ASSERT命令不能写在BEFROE/AFTER RECORD/ENTRY代码块中。

8.2.3.   AUTOJUMP

Epidata的实现类似,在系统中AUTOJUMP是让输入焦点自动跳转到其他控件上。编写方式:

 

AUTOJUMP {字段}

 

         除去字段编号,AUTOJUMP命令后还可以跟一些特定的参数:

1)         WRITE:结束录入并提交数据

2)         END:最后一个控件

3)         SKIPNEXTFIELD:跳过下一个控件直接跳到后一个控件

例:

AUTOJUMP Field_1

AUTOJUMP WRITE

 

当此命令编写在脚本上时,在进入问卷数据录入界面时,输入焦点自动跳转到指定的字段上。

 

AUTOJUMP命令不能写在BEFROE/AFTER RECORD/ENTRY代码块中。

8.2.4.   BEEP

在计算机上发出一声。BEEP有三种类型的声音可选:

 

1)         BEEP

2)         BEEP CONFIRMATION

3)         BEEP WARNING

 

AUTOJUMP命令需要写在BEFROE/AFTER RECORD/ENTRY代码块中。

8.2.5.   CLEAR

清空变量的值。编写方式:

 

CLEAR {字段}

 

例:

 

CLEAR Field_1

 

CLAER命令需要写在BEFROE/AFTER RECORD/ENTRY代码块中。

 

8.2.6.   COPYTOCLIPBOARD

此命令将一个字符串(可包含一个或更多变量的值)拷贝到系统剪贴板上。用户可以将拷贝的内容其它应用程序中。需要注意,由于浏览器的限制,此命令只支持在IEFirefox中调用。编写方式:

COPYTOCLIPBOARD ”{提示消息}”

 

拷贝的文本需要用双引号括起来。需要在消息文本中的变量前加个@。例:

 

COPYTOCLIPBOARD “Field_1 的值为@Field_1”

 

COPYTOCLIPBOARD命令需要写在BEFROE/AFTER RECORD/ENTRY代码块中。

8.2.7.   DEFINE

DEFINE命令可以用于定义新的、临时变量。这些临时变量可以用来保留计算过程中的中间值。与此有关的信息请参见Epidata帮助文件对此命令的介绍。

 

DEFINE定义的变量名最多16个字符。临时变量不会被保存在数据库中。在关联的数据库中,相同的DEFINE可以用在几个CHECK文件中。重复的DEFINE命令会被忽略。例如:

DEFINE MyTempVar ####

DEFINE varSurname <A > CUMULATIVE

DEFINE tempDate <dd/mm/yyyy>

DEFINE varCity GLOBAL

8.2.8.   DISABLE

禁止某个控件录入,使控件处于不可录入的状态。编写方式:

 

DISABLE {字段}

 

DISABLE命令需要写在BEFROE/AFTER RECORD/ENTRY代码块中。

8.2.9.   ENABLE

DISABLE命令相反,启用某个控件录入,使控件处于可录入状态。编写方式:

 

ENABLE {字段}

 

ENABLE命令需要写在BEFROE/AFTER RECORD/ENTRY代码块中。

8.2.10.           EXIT

停止执行并离开一个命令块(例如,AFTER ENTRY命令块)。使用EXIT,可以使程序不必再继续执行IFTHEN-ELSEEXIT后面长长的命令。例:

 

AFTER ENTRY

         IF Field_1=1 then

                   Exit

         Endif

         Field_1 = Field_2+ Field_3

END

 

8.2.11.           GOTO

使输入焦点跳转到某个控件。编写方式:

 

GOTO {字段}

 

         除去字段编号,GOTO命令后还可以跟一些特定的参数:

1)         WRITE:结束录入并提交数据

2)         END:最后一个控件。

 

例:

GOTO Field_1

GOTO WRITE

 

GOTO命令需要写在BEFROE/AFTER RECORD/ENTRY代码块中。

 

8.2.12.           HELP

此命令显示一个对话框,用户指定显示的字符串(可包含一个或更多变量的值)。编写方式:

HELP ”{提示消息}”

 

文本消息需要用引号括起来。需要在消息文本中的变量前加个@。例:

 

HELP “Field_1 的值为@Field_1”

 

HELP命令需要写在BEFROE/AFTER RECORD/ENTRY代码块中。

 

8.2.13.           HIDE

隐藏指定的控件。编写方式:

 

HIDE {字段}

 

例:

 

HIDE Field_1

HIDE命令需要写在BEFROE/AFTER RECORD/ENTRY代码块中。

8.2.14.           HIDEROW

隐藏指定的控件所在行,通常情况下包含控件的名称和控件本身。如果使用了单行容器,则使用此命令可以隐藏整个单行容器的内容。编写方式:

 

HIDEROW {字段}

 

例:

 

HIDEROW Field_1

HIDEROW命令需要写在BEFROE/AFTER RECORD/ENTRY代码块中。

8.2.15.           HIDEROWS

Epidata软件中JUMPS命令类似,使用此命令可以声明当控件的各个取值时隐藏掉不用录入的控件所在的行。在命令中,在值对应的是控件的值是这个值时需要显示的行,而其他在脚本中提及但是不在此行中的控件的行则被隐藏。值后面空格之后跟控件编号。值对应的控件可以多个,多个之间以都好分割。编写方式:

 

HIDEROWS

         {1} {控件1},{控件2}

         {2} {控件3},{控件4}

END

 

例:

HIDEROWS

         1 Field_1

         2 Field_2

         3 Field_3

END

 

这个命令表示在当前脚本的控件在取值为1的时候显示Field_1所在的行,隐藏Field_2Field_3所在的行; 取值为2的时候显示Field_2所在的行,隐藏Field_1Field_3所在的行;取值为3的时候显示Field_3所在的行,隐藏Field_1Field _2所在的行。

 

HIDEROWS命令只能写在控件(不包含子表控件)的BEFROE/AFTER RECORD/ENTRY代码之外。

 

8.2.16.           HIDES

HIDEROWS命令类似,使用此命令可以声明当控件的各个取值时隐藏掉不用录入的控件。在命令中,在值对应的是控件的值是这个值时需要显示控件,而其他在脚本中提及但是不在此行中的控件则被隐藏。值后面空格之后跟控件编号。值对应的控件可以多个,多个之间以都好分割。编写方式:

 

HIDES

         {1} {控件1},{控件2}

         {2} {控件3},{控件4}

END

 

例:

HIDES

         1 Field_1

         2 Field_2

         3 Field_3

END

 

这个命令表示在当前脚本的控件在取值为1的时候显示Field_1,隐藏Field_2Field_3; 取值为2的时候显示Field_2,隐藏Field_1Field_3;取值为3的时候显示Field_3,隐藏Field_1Field _2

 

HIDES命令只能写在控件(不包含子表控件)的BEFROE/AFTER RECORD/ENTRY代码之外。

8.2.17.           IF…THEN

IF…THEN命令用于在某个条件下执行某些命令。他的写法是:

 

IF  {表达式} THEN

{命令1}

ENDIF

或者是:

IF {表达式}  THEN

{命令1}

ELSE

{命令2}

ENDIF

 

在命令中的表达式的计算结果应该为逻辑值(Boolean),即真或者假。当表达式的结果返回真值时,执行命令1中的一连串的命令,否则执行命令2

 

例:

IF field1>10 THEN

GOTO field10

ENDIF

 

IF (Cos(field1)*Sin(field1)<0.3) AND (field2<>0) THEN

IF field2<field3 THEN

HELP “Something is wrong.”

Exit

ENDIF

ELSE

Field4=Tan(field1)

GOTO field23

ENDIF

 

IF…THEN命令需要写在BEFROE/AFTER RECORD/ENTRY代码块中。

8.2.18.           JUMPS

声明当控件的值为某个值的时候输入焦点跳转到某个控件。JUMPS是一个块命令,必须以END结束。编写方式:

 

JUMPS

         {1} {控件1}

         {2} {控件2}

END

 

例:

HIDEROWS

         1 Field_1

         2 Field_2

         3 Field_3

END

 

当控件取值为1时跳转到Field_1;取值为2时跳转到Field_2;取值为1时跳转到Field_3

 

JUMPS命令只能写在控件(不包含子表控件)的BEFROE/AFTER RECORD/ENTRY代码之外。

8.2.19.           LET

令某个变量等于某个数值或某个计算的结果,或者等于用DEFINE定义的变量。LET命令可以省略,直接书写后面的表达式即可。编写方式:

LET {控件}={表达式}

 

例:

 

LET Field_1=Field_2 + Field_3

或者

Field_1=Field_2 + Field_3

 

LET命令需要写在BEFROE/AFTER RECORD/ENTRY代码块中。

 

8.2.20.           RANGE

为控件定义值范围,定义的值类型需要和控件的值的类型一致。编写方式:

 

RANGE 5 5 

 

允许录入-55间的数值,包括-55

RANGE命令只能写在控件(不包含子表控件)的BEFROE/AFTER RECORD/ENTRY代码之外。

 

8.2.21.           REMOVERECORD

从子表控件中删除一行数据。两种编写方式:

         ADDRECORD {子表控件ID} {数据行的位置}

 

当此命令处于子表控件的子控件上时,可以不用写第二个参数,而以用户当时编辑的行作为需要删除的行。

 

例:

REMOVERECORD SUB_DATATABLE 1

 

         REMOVERECORD SUB_DATATABLE                  /此写法只能用于子表控件的子控件上

 

REMOVERECORD命令需要写在BEFROE/AFTER RECORD/ENTRY代码块中。

8.2.22.           REPEAT

在输入下个记录的时候自动填入上次的记录的值。需要注意,由于web系统的限制,此命令仅仅在连续录入的时候生效。当页面跳转到其他调查问卷再跳转回来的时候,所有的值都不起作用。编写方式:直接写下REPEAT即可;

 

REPEAT命令只能写在控件(含子表控件)和问卷的BEFROE/AFTER RECORD/ENTRY代码之外。当REPEAT命令作用于子表控件和问卷上时候,则所有子表中的或者问卷中的控件的值都会被自动填入。

 

8.2.23.           UNHIDE

HIDE命令相反,显示指定的控件。编写方式:

 

UNHIDE {字段}

 

例:

 

UNHIDE Field_1

UNHIDE命令需要写在BEFROE/AFTER RECORD/ENTRY代码块中。

 

8.2.24.           UNHIDEROW

HIDEROW相反,显示指定的控件所在行,通常情况下包含控件的名称和控件本身。如果使用了单行容器,则使用此命令可以隐藏整个单行容器的内容。编写方式:

 

UNHIDEROW {字段}

 

例:

 

UNHIDEROW Field_1

UNHIDEROW命令需要写在BEFROE/AFTER RECORD/ENTRY代码块中。

8.2.25.           其他Epidata命令

下列Epidata命令的支持仅仅用于对Epidata软件的支持。下列命令可以存在于脚本中,但是可能不会发生任何作用:

1)         AUTOSAVE

2)         AUTOSEARCH

3)         BACKUP

4)         COLOR

5)         COMMENT

6)         CONFIRM

7)         CONFIRMFIELD

8)         EXECUTE

9)         INCLUDE

10)     KEY

11)     LEGAL

12)     MISSINGVALUE

13)     MUSTENTER

14)     NOENTER

15)     QUIT

16)     RELATE

17)     TOPOFSCREEN

18)     TYPE

19)     WRITENOTE

 

8.3.  函数参考

在流行病学动态数据采集平台的脚本中支持的函数和Epidata软件中支持的函数基本一致,但是在Epidata函数的基础上增加了一些自定义的函数。

8.3.1.   算术函数

8.3.1.1.            ABS(X): 小数

计算x的绝对值。x可以是整数或小数。例如:

 

ABS(4)=4, ABS(-4)=4

8.3.1.2.            ARCTAN(X: 小数): 小数

计算x的反正切。在下面的例子中,同样,用SinCosTan计算其它三角函数。例如:

 

Tan(x)=Sin(x)/Cos(x)

ArcSin(x)=ArcTan(x/sqrt(1-sqr(x)))

ArcCos(x)=ArcTan(sqrt(1-sqr(x))/x)

 

8.3.1.3.            COS(X: 小数): 小数

计算角x(弧度)的余弦。

8.3.1.4.            EXP(X: 小数): 小数

计算ex次幂,e是自然对数的底。

 

8.3.1.5.            FLOAT (X): 小数

x转换为小数。如果FIELD1等于“Q34.3”,则下列函数的结果为34.3

 

Float(copy(field1,2,4))

8.3.1.6.            FRAC(X: 小数): 小数

x是一个小数类型变量,该函数将得到x的小数部分,即:

Frac(x)=x-Int(x)

8.3.1.7.            INT(X: 小数): 小数

x是一个小数型变量,该函数将得到x的整数部分。但是,即使它只含x的整数部分,该结果仍然属于小数数值。

8.3.1.8.            INTEGER(X): 整数

该函数将一个字符串(其中含有数字)转换成一个整数。如果FIELD1等于“41”,那么下列函数的结果为41

Integer(copy(FIELD1,2,2))

 

8.3.1.9.            LN(X: 小数): 小数

计算小数型变量x的自然对数。

8.3.1.10.       PI: 小数

表示圆周率π,即圆周长度与圆的直径长度之比,近似等于3.1415926535897932385

8.3.1.11.       POWER(BASE, EXPONENT: 小数): 小数

计算某值(base)的任意次幂(exponent)。该值(base)必须大于0

8.3.1.12.       RANGE(A,B,C: 小数): 逻辑值

如果abac,则返回“Y”(是)。bc可以是数字或数值型变量的变量名。如果结果变量被设置为整数,例如:

 

LET Teenager=Range(age, 13, 19)

8.3.1.13.       ROUND(X: 小数): 整数

将小数四舍五入转换为整数型数值。例如,下列函数的结果为3

 

v2=round(2.5)

8.3.1.14.       SIN(X: 小数): 小数

计算角x(弧度)的正弦。

8.3.1.15.       SQR(X: 小数): 小数

计算x的平方。

8.3.1.16.       SQRT(X: 小数): 小数

计算x的平方根。

8.3.1.17.       SUM(依次列出变量名或列出变量范围): 小数

将指定的这些变量的数值加起来。时间变量、IDNUM 变量和其它非字符串型变量都可以计算。例如:Sum(V1,V2,V10-V20)。记住用双引号把范围值括起来。

8.3.1.18.       TRUNC(X: 小数): 小数

该函数截去小数的小数点后的部分,保留整数部分。例如,下列函数的结果为2。参见Round( )

 

v2=trunc(2.5)

 

8.3.2.   字符串函数

8.3.2.1.            UPPER(S: 字符串): 字符串

将字符串S中的所有字符都转换为大写字母。该转换会影响ANSI字符集中的所有字符。

8.3.2.2.            LOWER(S: 字符串): 字符串

将字符串S中的所有字符都转换为小写字母。该转换会影响ANSI字符集中的所有字符。

8.3.2.3.            COPY(S: 字符串, INDEX, COUNT: 整数): 字符串

返回字符串中的某个子串。S是一个字符型表达式。IndexCount是整数。Copy(S: 字符串, Index, Count: Integer)可以返回一个字符串,其中含有Count个字符,从字符串SIndex 位置开始。如果Index S的长度大,则该函数只能返回一个空的字符串。如果Count指定的字符数超过了实际有的,则该函数只能返回从Index开始到结尾的字符。例如,下列函数的结果为“short”。

SHORT=copy(“My short sentence”, 4, 5)

 

8.3.2.4.            POS(SUBSTR: 字符串,S: 字符串): 整数

该函数将在一个字符串(S)中查找某个子串(Substr)。SSubstr都是字符型。Pos(Substr: 字符串; S: 字符串)是在S中找Substr,然后返回一个整数值,这个值就是Substr的第一个字符在S中的位置。Pos(Substr: 字符串; S: 字符串)。如果没有找到Substr,函数返回数值0。例如:下列函数的结果为4

position=pos(“short”, “My short sentence”)

8.3.2.5.            LENGTH(S: 字符串): 整数

得出字符串S占用的字符数。例如,下列函数的结果为11

 

length(“This string”)

 

8.3.2.6.            STRING(X): 字符串

x转换为字符串。如果FIELD1是一个整数变量,等于41,则下列函数

的结果为“sb41”。参见INTEGER函数,可将字符串转换为数字。

sb”+String(FIELD1)

8.3.2.7.            SOUNDEX(S: 字符串): 字符串

函数的结果是字符串S的声索引编码。请参见Epidata中的相关说明。

8.3.3.   日期和时间函数

在流行病学动态数据采集平台的脚本中和EpiData类似,将日期作为小数处理,将其换算为自18991231日以来的天数。这么处理日期使与日期有关的计算非常方便。例如,计算两个日期之间相差的天数,用简单的减法即可实现。

 

8.3.3.1.            DATE(D: 整数, M: 整数,Y: 整数): 日期

参数有3个:日、月和年,返回的日期就是由这三个参数组成。该函数得到的结果是日期格式还是整数,取决于指定的变量的类型。

8.3.3.2.            DAY(D: 日期): 整数

得到日期D的日(即,131中的一个数)。

8.3.3.3.            DAYOFWEEK(D: 日期): 整数

得到一个数字,代表指定日期是星期几。例如,下列函数的结果为4,表示该日为周四。注意,这里对应的编码是:周一=1,……,周日=7

DayOfWeek(“22/02/2001”)

8.3.3.4.            MONTH(D: 日期): 整数

得到日期D的月份(即,112中的一个数)。

8.3.3.5.            NOW: 日期

得到当前日期。例:

 

LET D1=Now

LET T1=Num2Time(Now)

8.3.3.6.            NUM2TIME(D: 日期): 小数

将一个01的数转换为小数##.##,其中,整数部分表示小时,从024;小数部分表示分钟,从.00.59

8.3.3.7.            TIME2NUM(F: 小数): 日期

如果F是一个小数,表示时间,从0.0023.59,那么Time2Num函数会将这个时间转换为一个01 的数。例如,Time2Num(12.00)=0.50Time2Num(0.00)=0Time2Num(24.00)=1.00Time2Num(9.30)=0.40

8.3.3.8.            TODAY: 日期

给出当天的日期。该函数得到的是日期格式还是整数,取决于指定的变量的

类型。

8.3.3.9.            WEEKNUM(D: 日期): 整数

得到指定日期距离当年11日的周数。例如:

WeekNum(now)

8.3.3.10.       YEAR(D: 日期): 整数

得到日期D的年数(4位数)

 

8.3.4.   其它函数

8.3.4.1.            ISBLANK(FIELD 控件): 逻辑值

如果某个变量没有录入,则认为是“真”;如果变量中含有数据,则认为是“假”。例:

 

IF ISBLANK(Field_1) THEN …

8.3.4.2.            RECORDCOUNT(TABLE 子表控件): 整数

此函数用在流行病学动态数据采集平台中用在调查问卷主表上时返回值恒定为1TABLE参数为子表控件的编号是返回的是当前记录中该子表控件的数据的条数。

8.3.4.3.            SELECTIONCOUNT(FIELD 控件): 逻辑值

返回指定的多选控件或者列表选择控件选中的项的数量值。

8.3.4.4.            ISSELECTED(FIELD 控件,v1,v2:字符串): 逻辑值

判断指定的多选控件或者列表选择控件的选中项中是否包含V1,V2等项。V1,V2时数据字典的保存值,可以为一个,也可以为多个值。例:

 

IF ISSELECTED(Field_1,”1”) THEN

 

IF ISSELECTED(Field_1,”1”,”2”,”3”) THEN

8.3.5.   不支持的Epidata函数

下列epidata的函数在流行病学动态数据采集平台的脚本中不被支持,无论调用的参数是什么,其返回值都是固定的。

1)         RECORDNUMBER

2)         COUNTMISSING

8.4.  操作符参考

在流行病学动态数据采集平台的脚本中支持的操作符和Epidata软件中支持的操作一致。

8.4.1.   算术运算符

运算符

运算

数据类型

结果类型

^

指数

整数

小数

小数

小数

+

加法

整数

整数

小数

小数

字符串

字符串

-

减法

整数

整数

小数

小数

*

乘法

整数

整数

小数

小数

/

除法

整数

整数

小数

小数

div

整数除法

整数

整数

mod

整数除法取余

整数

整数

3  算术运算符

8.4.2.   逻辑运算符

运算符

运算

数据类型

结果类型

not

逻辑值

逻辑值

and

逻辑值

逻辑值

or

逻辑值

逻辑值

xor

异或

逻辑值

逻辑值

4 逻辑运算符

 

注意,not操作符后面只跟一个操作对象。如

IF not (Field_1 = 1) then

         {命令}

ENDIF

8.4.3.   关系运算符

关系运算符用于两个空间的值之间进行比较,返回逻辑值。值比较最好是两个比较的值的类型一致,比如整数对整数的比较。如果两个比较的值类型不一致,将转换成同一类型后再比较。

 

运算符

运算

结果类型

=

等于

逻辑值

<> 

不等于

逻辑值

小于

逻辑值

大于

逻辑值

<=

小于等于

逻辑值

>=

大于等于

逻辑值

5 关系运算符

8.5.  内置变量

在脚本中通过,我们有一些已经内置的变量,用户在编写脚本时可以直接范围而无需先声明。

8.5.1.   RESULTLETTERRESULTVALUE

使用help命令中,返回保存在这两个变量中。请参见Epidata中的相关说明。

8.5.2.   用户相关信息

通过以下变量可以直接放回用户相关的信息。需要注意,下列变量需要需要区分大小写:

 

1)         user$id:用户的ID

2)         user$name:用户的名称

3)         user$ zonecode:用户的地区编码

4)         user$ orgcode:用户的机构编码

5)         user$ login:用户登录账户名

6)         user$ reguser:是否是注册用户,值为字符串形式的true/false

7)         user$ superUser:是否是调查任务管理员,值为字符串形式的true/false

8)         user$ limitOrgUser:是否是机构直报用户,值为字符串形式的true/false

9)         user$ linkage:用户联系方式

8.5.3.   其他信息

通过以下变量可以直接其他相关的信息。需要注意,下列变量需要需要区分大小写:

 

1)         application$name导出为调查问卷时指定的调查问卷的名称

2)         form$name:设计调查问卷模板时指定的名称

3)         action$name:当前操作的名称,编辑、修改等。可配合多个编辑操作实现简单的流程。


 

9.      调查问卷定制管理模块

本章节介绍系统自动的调查问卷定制管理模块的功能。

9.1.  定制管理

定制管理主要包含组件的设计、调查问卷模板的设计以及调查问卷的管理功能。

9.1.1.   调查问卷管理

调查问卷管理提供了根据调查问卷模板生成调查问卷、导入epidata文件生成调查问卷以及浏览调查问卷的功能。

9.1.1.1.            导入epidata问卷

         导入epidata问卷只支持一次导入一个rec文件,不支持EpidataRELATE命令带来的多个rec文件关联的情况。并且每个Rec文件只支持导入其直接关联的CHK文件,不知道INCLUDE的关联命令。CHK脚本的支持情况请参见脚本模块的说明。

 

113 导入Epidata问卷界面

 

1)         调查问卷名:问卷显示名

2)         调查问卷描述:问卷的文字性描述

3)         Epidata REC文件:Epidata文件的REC文件,只会导入数据库机构和问卷样式,不会导入数据

4)         Epidata CHK文件:与Rec文件关联的脚本文件,支持LABEL等数据字典定义。

5)         问卷类型:指定最终生成的问卷的样式,默认为【Epidata问卷】。选择【系统定制问卷】时,不仅会将导入的问卷生成定制问卷的列表编辑样式,同时也会加上用户操作追踪字段。

6)         共享:选中则别人也可以使用此问卷并且发布成调查任务

9.1.1.2.            新建调查问卷

从调查问卷模板中选中一个模板并且将其创建成调查问卷。用户只能使用调查问卷发布到调查任务中。

114 新建调查问卷

 

1)         调查问卷名:问卷显示名

2)         调查问卷描述:问卷的文字性描述

3)         模板ID:选择一个调查问卷模板

4)         共享:选中则别人也可以使用此问卷并且发布成调查任务

9.1.1.3.            浏览调查问卷

用户可以浏览自己创建和的和别人共享出来的调查问卷。用户只能删除自己创建的调查问卷。

115 浏览调查问卷界面

 

点击【预览】按钮,系统打开一个新窗口按照实际的效果运行调查问卷,用户可以对设计的问卷进行测试。每次打开调查预览界面,以前录入的数据都会被清空。

 

点击【打印】,系统打开调查问卷打印界面。

 

点击【导出】按钮,可以调查问卷导出为xml。导出的文件可以通过列表上方的【导入】按钮导入。

 

9.1.1.4.            调查问卷打印

页面打开后,请先点击左上角的问卷名称前面的单选框,系统会在下面显示出选中的表单。比表单样子会表单所有控件都显示的样子,并不会触发命令从而影响布局。如果使用表间关联控件并且关联类型为主子表,一个调查问卷中可能包含多个表单。

 

待表单显示完成并确认无误后,请点击右上角的【打印】按钮直接打印。如果需要设置打印样式,请修改浏览器的打印设置。

116 调查问卷打印界面

9.1.2.   调查问卷模板管理

在此处可以新增、修改、删除、浏览调查问卷模板,并且可以在别的用户共享出来的调查问卷模板的基础上对其进行修改并且保存为自己的调查问卷模板。

9.1.2.1.            新建调查问卷模板

点击【新建调查问卷模板】,打开调查问卷模板的设计界面。

 

调查问卷的设计的详细请参见问卷设计的相关说明章节。

9.1.2.2.            浏览调查问卷模板

117 浏览调查问卷模板界面

 

用户可以浏览自己创建和的和别人共享出来的调查问卷模板。用户只能删除自己创建的调查问卷模板。

 

点击【预览】按钮,系统打开一个新窗口按照实际的效果运行调查问卷模板,用户可以对设计的调查问卷模板进行测试。每次打开调查问卷模板预览界面,以前录入的数据都会被清空。

 

点击【打印】,系统打开调查问卷模板打印界面。操作方法同调查问卷打印。

 

点击【导出】按钮,可以调查问卷模板的定义导出为xml。导出的文件可以通过列表上方的【导入】按钮导入。

9.1.3.   组件管理

用户可以新建、修改、删除、浏览组件。

9.1.3.1.            新建组件

点击【新建组件】,打开组件的设计界面。

 

调查问卷的设计的详细请参见问卷设计的相关说明章节。

 

9.1.3.2.            浏览组件

118 组件浏览界面

 

用户只能修改、删除自己创建的组件,可以浏览和使用别人共享出来的组件。

 

点击【导出】按钮,可以组件的定义导出为xml。导出的文件可以通过列表上方的【导入】按钮导入。

 

9.2.  发布管理

发布管理主要包含对调查任务的发布、修改等调查任务相关的管理功能。

9.2.1.   调查任务管理

调查任务的管理功能主要用户用户使用已经创建好的调查问卷发布成调查任务。用户可以为调查任务指定用户和权限管理模型等。

9.2.1.1.            新建调查任务

119 新建调查任务界面

 

1)         调查任务名:名字,显示于登录界面和主菜单上

2)         描述:文字性描述

3)         权限管理:指定调查任务所使用的权限及用户管理模式。值可以为空,为空时用户可以直接访问调查问卷并且使用所有功能。

a)         系统内置(共享用户):创建的调查任务和问卷定制管理模块共享用户,但是使用此调查任务需要额外授权。注意:用户创建此调查任务,但是不是此调查任务的调查任务管理员。

b)         系统内置(单独用户):使用问卷定制管理模块相同的管理模型,但是需要重新建立用户。创建此调查任务的用户是此调查任务的调查任务管理员,可以直接登录到调查任务里进行用户管理等工作。

4)         启用匿名用户:【权限管理】选择为【系统内置(单独用户)】时可见。如果勾选此项,则所有未登录的用户都默认以系统建立的【匿名用户】账号登录系统。调查任务管理员可以通过对【匿名用户】账户的权限管理来控制未登录系统的用户的权限。

5)         注册用户自动审核: 在【权限管理】选择【单独用户】时此选项可用。勾选之后用户在注册用户之后,无需系统管理员审核即可自动创建新用户,并为新用户关联到用户组【自动审核用户用户组】。

6)         任务开始日期:如果输入了日期,则小于此日期此调查任务不可访问。

7)         任务借宿日期:如果输入了日期,则大于此日期此调查任务不可访问。

8)         操作手册:如上传了操作手册文件,调查任务用户可以在调查任务里主菜单上下载。

9)         调查任务所属问卷:调查任务里包含的调查问卷

a)         问卷ID:点击选择需要发布的调查问卷

b)         问卷分组:问卷的分组,如双录入核查等需要为问卷分配不同的分组名。问卷分组在调查任务的主界面显示为不同的主菜单项。默认为数据采集。

10)     视图映射:设置调查任务的数据视图映射,如果不设置,即使用系统默认的数据视图映射,即问卷定制管理模块的数据视图设置。

1)         数据视图ID:选择一种需要设置的数据视图

2)         数据字典ID:列出了所有实现了此数据试图的数据字典,选择一项即可。

9.2.1.2.            浏览调查任务

120 浏览调查任务界面

 

用户只能浏览自己发布的调查任务。

 

点击【打开调查任务】按钮,用户可以打开调查任务的登录界面。用户可以将此网址发布给需要登录的用户。

 

点击修改,进入调查任务的修改界面,用户可以修改调查任务的基本信息,或者升级、替换调查问卷。

 

点击【导入数据】按钮,打开调查任务的数据导入界面。点击【导出】按钮可以将调查任务的问卷和数据都导出为一个文件,再在其他地方进行导入操作。导出文件里不包含用户和授权信息。

 

点击页面上部的【导入】按钮,可以导入一个调查任务的文件为一个新的调查任务。

9.2.1.3.            修改调查任务基本信息

121 修改基本信息界面

 

在修改基本信息界面中只能修改调查任务名、描述、启用匿名用户、任务开始日期、任务结束日期、操作手册、问卷分组和视图映射等项。

 

调查数据ID起始值:填入一个数字,则调查任务中所有的调查问卷的新建的数据的ID将以此值开始。此功能为每个调查任务的部署设立分段ID

 

在每个调查问卷ID上点击【升级问卷】或【替换问卷】按钮,系统将打开升级/替换问卷界面。

9.2.1.4.            升级/替换问卷

122 升级问卷界面

 

升级和替换问卷操作类似,都是使用新的问卷替换掉调查问卷中的旧的问卷。升级问卷功能会尝试将旧的数据转到新的调查问卷中,这要求新的问卷在数据定义上必须和旧的问卷一致。比如不能出现旧问卷中字段可以为空并且在已有数据中也有空值存在;或者新加了一个必填字段等情况。

9.2.1.5.            导入调查任务

123 导入调查任务界面

 

数据文件:必须是在调查任务浏览界面处使用导出功能导出的文件。

导入数据:如果勾选了则会将数据文件中的数据(如果有)导入。

9.2.1.6.            导入数据

124 调查任务数据导入界面

 

数据文件必须是在调查任务浏览界面处使用导出功能导出的文件。

9.3.  系统管理

和其他调查任务不同的是,在问卷定制管理模块中,系统管理多出了数据试图管理、系统字段管理和系统公告管理三个功能。

 

9.3.1.   数据视图管理

数据试图管理可以浏览系统里所有的数据试图及其默认的映射的数据字典,并且修改数据试图默认映射的数据字典。

 

问卷定制管理模块只能使用默认的数据视图映射。调查任务可以自行设定特殊的数据视图映射,如果未设定则使用系统默认的数据试图映射,即问卷定制管理模块的数据试图映射。

9.3.1.1.            浏览数据试图

125 浏览数据试图界面

 

系统默认支持三个数据视图,其中地区编码控件支持使用地区编码和国家统计局区划代码,机构编码控件支持使用机构编码视图。

1)         地区编码

2)         国家统计局区划代码

3)         机构编码

 

除此之外,在设计数据字典时还有一个数据视图叫【文本框查询录入】。此视图无固定结构且不需要映射设置,所有不在此列出。

 

点击【修改】进入修改数据试图映射界面。

9.3.1.2.            修改数据试图映射

126 修改数据试图映射界面

 

修改数据试图映射界面会列出数据试图的具体的字段定义,所有有实现了此数据试图的数据字典都必须实现相同字段编码和名称以及数据类型的字段。

 

用户可以修改【默认数据字典项】,此处只列出了实现了此数据视图的数据字典,然后点击保存即可完成修改操作。

 

对于地区编码和国家统计局区划代码数据视图,中心点坐标(geocenter)字段是可选的字段,其值为逗号分隔的经纬度值。对于机构编码数据试图,机构级别(orglevel)目前仅支持国家级、省级、市级、县级和乡级五种单位级别,编码值依次为01234

9.3.2.   系统字典管理

数据字典主要用户标准化数据的统一管理。系统管理员可以将性别、名族、地区编码等标准化数据以数据字典的形式预先维护好,即省去了问卷定制用户的自行维护这些数据的麻烦,同时也避免了各个问卷之间由于数据字典的不同而带来的数据不兼容的问题。

 

数据字典管理提供了新建、修改、删除、浏览、管理数据字典数据、导入数据等功能。

9.3.2.1.            新建数据字典

点击【新建数据字典】,打开数据字典的设计界面。

 

调查问卷的设计的详细请参见问卷设计的相关说明章节。

9.3.2.2.            浏览数据字典

127 浏览数据字典界面

        

         用户只能修改、删除自己创建的数据字典。

 

         点击修改按钮可以打开问卷设计界面,用户可以修改数据字典的结构定义。需要注意,如果修改了数据字典,则以前建立的数据将会被清空。

 

         点击【导出】按钮可以导出数据字典的定义文件为xml文件。

 

         点击【编辑数据】按钮,可以打开数据字典的数据列表界面。在数据字典的数据列表界面,点击【新增】按钮可以加入新数据,也可以修改、删除、导出数据字典的数据。

9.3.2.3.            导入数据

128 数据字典数据导入界面

 

数据导入功能支持导入csv文件或者zip压缩的csv文件。在zip文件里的csv文件文件名必须为数据字典的名称。建议使用数据字典的列表上的【导出excel】功能导出文件,然后将数据写入对应的列,然后再将此文件上传导入。

 

如果勾选了【是否清空原有数据】,则导入前会将以前的数据清空。

9.3.3.   系统公告管理

在公告区的上方有系统公告的浏览区。系统公告的发布和管理是在此功能处提供的。

9.3.3.1.            新建系统公告

 

         用户可以在公告上提交相关文件供用户下载。

         如果填写了【有效截止日期】,则当当前日期大于此日期后,公告栏即不再显示此公告。

9.3.3.2.                   浏览系统公告


129 浏览系统公告界面

 

用户可以浏览所有公告,包含已经失效的公告。


 

第四部分 附录

 

         本章节内的内容需要读者仅供参考,且需要读者具有较高的IT技能,请阅读自己选择是否阅读。


 

10.              手动编写问卷

在流行病学动态数据采集平台中定制出来的调查问卷一旦生成就是在系统中不可修改的。用户只能修改调查问卷模板,再重新将修改后的调查调查问卷模板导出为问卷才可使用。所有在系统中生成的调查问卷模板都是以xml的形式定义的。用户可以在系统中将调查问卷导出,同时系统也支持用户将xml形式的调查问卷导入。

 

高级用户也可以尝试手工编写调查问卷定义,这将在可以使用流行病学动态数据采集平台提供控件、数据管理等基础架构的之上获得更加灵活的数据定义和问卷表单定义能力等。用户按照系统的规则编写好调查问卷的xml定义文件之后,可以通过调查问卷管理处的导入功能直接导入到系统即可发布到调查任务中。

 

与此同时,对于导出excel等功能,系统在定制界面并未提供定制选项。导入的Epidata问卷默认也未提供数据权限控制选项。用户可以尝试先将调查问卷导出,然后修改调查问卷的定义的属性来修正这些选项。修改完成之后,用户可以通过调查问卷管理处的导入功能直接导入到系统即可发布到调查任务中。

 

如果您需要获得手工编写或者修改问卷定义的xml文件更多细节,请和我们联系,我们将提供更多的技术信息。

11.              数据库相关信息

流行病学动态数据采集平台使用MySQL数据库作为后台的数据库系统。用户定义的每个调查问卷都会在数据中建立一个单独的数据库表。并且用户对数据的新增、修改、删除已经数据的浏览等操作都会转换成数据库操作交由数据完成。因此,当用户在使用流行病学动态数据采集平台面临到较大的数据压力时,比如录入的调查问卷的数据大于百万行,可以尝试进行数据库级或者表一级的优化来提供系统的吞吐能力。

 

在流行病学动态数据采集平台中,每个调查问卷生成的数据库表的名字为”dt_ + 问卷ID+_+模板编号/ID(子表控件)。每个字段命名为设计问卷时指定的字段编号。如果用户在查询数据数据反应较慢,可以尝试将用户常用的查询在数据库表建立一个专门的查询索引来进行优化。

 

关于数据库的连接信息,请咨询系统部署管理人员。


 

12.              离线录入工具

流行病学动态数据采集平台的主要功能都是在浏览器上进行的。但是为了适应特殊的环境和需要,我们也提供了适应于Windows和安卓平台的离线录入软件。

 

需要注意,受限于离线录入软件录入录入时网络处于不可访问状态,系统的某些控件(特别是地图坐标控件)在离线录入软件上显示的界面可能与网页版不太一致,用户在使用时需要特别注意。如果发布的专门为离线录入优化的调查问卷,请注意软件的兼容性测试。

 

12.1.   Windows离线客户端使用说明

12.1.1.           运行程序

1)         下载并且安装Java程序运行环境,请安装Java 1.6以上。可以从http://www.oracle.com/technetwork/java/javase/downloads/index.html 下载java 运行时或者Java SDK

2)         下载“流行病学动态数据采集平台离线采集软件”压缩包并且解开压缩包,打开解压缩的目录,然后双击run.bat或者直接单击laucher.jar即可运行流行病学动态数据采集平台离线采集软件。

 

软件运行界面如下图所示:

 

主界面

130 Windows离线录入软件界面

12.1.2.           下载调查任务

点击“调查任务管理菜单区域的“下载新任务”连接,弹出下载新任务对话框,依次填写服务器地址、任务编号、登录用户名和登录密码等,其中服务器地址和任务编号项不能为空,然后单击“下载调查任务按钮”即可将调查任务下载到本地保存,并且在调查任务菜单区会多出刚才下载的调查任务的菜单。

 

131 下载调查任务界面

12.1.3.           录入数据

单击需要录入数据的调查任务的右边的下拉菜单,展开调查任务的菜单,再一次单击调查问卷,展开调查问卷菜单,单击调查问卷菜单项即可进入使右边数据录入区装载指定的调查问卷进行数据录入。调查数据的录入操作和“流行病学动态数据采集平台”数据录入操作一致。

12.1.4.           上传数据

完成数据录入后需要将保存在本地的数据上传到服务器上时,点击调查任务菜单区的“上传”连接,系统即自动弹出数据上传对话框并且自动将保存到本地的数据上传到服务器上。

12.1.5.           删除调查任务

录入并上传数据后,需要将保存到本地的调查任务删除。点击调查任务菜单区的“删除”连接即可从本地删除此调查任务。请注意删除操作不可恢复。

12.2. 安卓离线客户端使用说明

 

12.2.1.           安装

安卓离线客户端的发布是以APK等文件的形式发布。

 

请使用豌豆荚 https://wandoujia.com/)等工具软件将附件dapClient.apk安装到安卓手机或者平板电脑上。

12.2.2.           使用

打开离线录入客户端,系统显示当前已经下载并缓存在本地的调查任务的列表。如下图所示:

132 安卓离线录入客户端主界面

 

系统会列出当前已经缓存在本地的调查任务,点击每条调查任务后面的打开按钮,可以进入调查任务管理管理界面,点击【删除】按钮可以删除当前的指定的调查任务及其数据。点击“下载新任务”按钮进入下载任务的界面:

133 下载调查任务界面

 

请依次填写服务器地址、调查任务编号、用户和密码然后点击下载新任务按钮,系统会自动下载调查任务及其问卷的信息,保存在本地。下载完成后界面切换回调查任务列表界面。

 

点击调查任务的后面的打开按钮,系统切入调查任务管理界面:

 

 

系统会列出当前调查任务包含的问卷及功能列表,如果该调查任务在本地已经录入了数据,“上传数据”及“上传全部数据”按钮将可用。直接点击这些按钮,接口直接将本地数据上传到服务器上。

12.2.3.           数据录入和浏览

单击每个功能(如图中的“新建离线录入测试”),系统界面将切入数据录入界面。数据录入界面和直接用浏览器打开流行病学动态数据采集平台的数据界面是一致的,如下图所示。

134 安卓数据录入界面