国内外基于web的好友聊天系统的现状
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了国内外基于web的好友聊天系统的现状相关的知识,希望对你有一定的参考价值。
基于web的好友聊天系统在国内外均得到了广泛的应用和发展。以下是关于国内外基于web的好友聊天系统的现状的一些细节: 国内: 1. 微信:中国最大的即时通讯软件,可以在手机端、电脑端和网页端使用,提供了好友聊天、朋友圈分享、公众号订阅等功能。 2. QQ:中国最早的即时通讯软件,也可以在手机端、电脑端和网页端使用,提供了好友聊天、群组聊天、游戏等功能。 3. 钉钉:一款专注于企业办公场景的即时通讯软件,可以在手机端、电脑端和网页端使用。 国外: 1. Facebook Messenger:属于Facebook旗下的即时通讯服务,可以在手机端和网页端使用,提供了好友聊天、群组聊天、语音、视频、表情等功能。 2. WhatsApp:世界上最大的即时通讯软件之一,可以在手机端和网页端使用,提供了好友聊天、群组聊天、语音、视频、表情等功能。 3. Telegram:一款安全、高速、简洁的即时通讯软件,可以在手机端、电脑端和网页端使用,提供了好友聊天、群组聊天、频道订阅、机器人等功能。 总的来说,基于web的好友聊天系统在国内外的应用非常广泛,不管是用于个人还是企业办公场景,都提供了许多丰富的功能。 参考技术A 国内外基于 web 的好友聊天系统的现状非常发达,它们提供了多种聊天服务,可以满足用户的不同需求。例如,QQ、微信等聊天应用是全球使用最多的聊天工具。它们提供了方便快捷的即时聊天功能,使用户可以在任何地方、任何时候进行聊天交流,与朋友、家人、同事保持联系。另外,Skype、LINE 等聊天软件也提供了不同的聊天功能,支持语音和视频通话,使用户可以轻松地进行远程通信。此外,随着智能手机的普及,越来越多的聊天应用程序也被开发出来,比如Facebook Messenger、Telegram 等,它们提供了更加先进的聊天功能,比如文件传输、地理位置共享等,使用户可以更加便捷的进行聊天交流。总的来说,国内外基于 web 的好友聊天系统已经发展得非常成熟,提供了丰富的聊天服务,可以满足广大用户的不同需求。 参考技术B 目前,国内外基于web的好友聊天系统发展迅速,应用越来越广泛。现代web聊天系统主要分为客户端服务器和P2P模式。客户端服务器模式是最常用的一种,用户可以使用特定的客户端软件连接到一个中心服务器,服务器负责处理用户的登录、消息发送和群聊等功能。一些例如QQ、微信等聊天系统就是基于客户端服务器模式构建的。P2P模式则是比较新的一种方式,它不需要中央服务器的支撑,而是由用户之间直接互相通信。P2P模式的优势在于更加安全、稳定,不易受到网络拥堵的影响。一些基于P2P模式构建的聊天系统有Skype、WhatsApp等。此外,越来越多的web聊天系统现在也开始支持移动端,例如腾讯的QQ空间,各种手机短信服务等,可以让用户随时随地登录、聊天。此外,越来越多的web聊天系统也支持更多的功能,例如视频聊天、文件共享等。可以说,现在的web聊天系统已经发展成非常完善的产品,能够满足现代人日常交流需求。 参考技术C 现在,国内外基于Web的好友聊天系统正在发展迅速,改变着传统的沟通方式。主流的国内外基于Web的好友聊天系统有QQ、微信、Facebook、Twitter等。它们都有自己独特的功能,但是有一些共同的特点:
1、它们都具有实时交流的功能,用户可以通过文字、语音和视频等不同的形式进行实时交流;
2、它们都具有群组聊天的功能,用户可以将好友组织成群,每个群可以有多个成员,以便大家可以一起进行聊天;
3、它们都具有网络游戏的功能,用户可以与其他用户进行多人游戏,以增加聊天的乐趣;
4、它们都具有文件共享的功能,用户可以通过网络将文件分享给其他用户,以便交流和协作;
5、它们都具有视频会议的功能,用户可以在线进行视频会议,以便进行面对面的沟通。
总的来说,国内外基于Web的好友聊天系统已经发展得很成熟,提供了多种功能,使沟通更加便捷,更加高效。 参考技术D 现在,国内外基于web的好友聊天系统已经发展得非常成熟。国内市场上,目前比较流行的聊天系统包括QQ、微信、陌陌等,它们拥有庞大的用户群体,拥有更为完善的聊天功能,具有良好的交互性,能够支持文字、图片、语音等多种聊天方式。
国外市场上,主要的聊天系统有Skype、WhatsApp、Telegram等,它们拥有更灵活的交流模式,支持多种聊天模式,具有更强的安全性,能够支持多人聊天等功能,同时也支持web版面。
总的来说,现在国内外基于web的好友聊天系统已经发展得非常成熟,拥有良好的交互性,支持多种聊天方式,具有更强的安全性,以及支持多人聊天等功能,使得聊天更加方便、安全、快捷。
基于BS架构的临床科研数据管理系统的设计与实现
基于BS架构的临床科研数据管理系统的设计与实现
2018年11月10日
目录
第一章 绪论... 6
1.1 选题背景及其意义... 6
1.2 国内外研究现状... 7
1.2.1 医疗大数据管理系统发展现状... 7
1.2.2 科研数据管理系统发展现状... 8
1.3研究目标... 9
1.4 研究内容... 10
1.5论文整体结构... 10
第二章 相关技术研究... 12
2.1 ASP 技术简述... 12
2.1.1ASP技术原理... 12
2.1.2ASP语言的特点... 13
2.1.3 ASP数据访问控制模型... 15
2.2 SQL Server 2008. 16
2.2.1 SQL Server 2008概述... 16
2.2.2 SQL Server 2008的主要特点... 16
2.3 Visual Stutio 2010. 17
2.4 UML. 18
2.4.1 UML概述... 18
2.4.2 UML的图... 18
2.5本章小结... 19
第三 章需求分析... 20
3.1用户角色分析... 20
3.2 分系统需求分析... 20
3.2.1研究信息管理子系统... 21
3.2.2项目管理子系统... 22
3.2.3质量管理子系统... 23
3.2.4数据导出子系统... 24
3.2.5 统计分析子系统... 25
3.2.6 系统配置管理子系统... 25
3.3系统的非功能性需求分析... 26
3.3.1经济可行性分析... 26
3.3.2响应时长... 27
3.3.3安全性和保密性需求... 27
3.3.4易用性要求... 28
3.3.5其他非功能性的需求... 28
3.4本章小结... 28
第四章 系统设计... 29
4.1 设计的原则和目的... 29
4.2 系统架构设计... 30
4.3 功能结构设计... 33
4.3.1 登录管理子系统... 33
4.3.2 研究信息管理子系统... 36
4.3.3项目管理子系统... 38
4.3.4 质量管理子系统... 38
4.3.5 数据导出子系统... 38
4.3.6 统计分析子系统... 39
4.3.7 系统配置管理子系统... 39
4.4 系统流程设计和E-R图设计... 41
4.4.1 数据录入流程... 41
4.4.2 数据字段导出流程... 41
4.4.3 数据删除流程... 42
4.3.4 系统E-R图设计... 43
4.5 数据库设计... 43
4.5.1系统用户相关表... 43
4.5.2项目配置相关表... 45
4.5.3 菜单操作权限相关表... 48
4.5.4 表单部件配置相关表... 50
4.5.5表单规则相关表... 55
4.5.6 案例数据相关表... 56
4.5.7 质疑相关表... 59
4.5.8其他相关表... 61
4.6 本章小结... 63
第五章系统实现与测试... 64
5.1 测试环境... 64
5.2 系统登陆和注册子系统... 64
5.3 研究信息管理子系统... 65
5.4 项目管理子系统... 67
5.5 质量管理子系统... 69
5.6 数据导出子系统... 70
5.7 统计与分析子系统... 71
5.8 系统管理子系统... 72
第六章 总结与展望... 77
6.1 总结... 77
6.2 展望... 77
主要参考文献... 79
摘 要
临床数据由于存在数据结构复杂、数据量大等问题,使得临床科研很难有足够的数据作为支持,尤其是很多临床科研数据存在于单个医院,甚至是单个部门,这种数据孤岛现象使得临床科研工作的开展备受阻力,数据瓶颈问题已经成为阻碍临床科研进步的重点难题,亟待解决。
我国科研数据管理系统虽然较以往有了很大的发展,但当前数据管理系统大多数是为单一部门的使用而设计、实现的,缺少全局性的考虑,难以应用于复杂部门关系的领域,如果应用于医疗系统,则将会有很多工作需要人工去弥补完成,造成人力资源极大的浪费。且当前数据管理系统缺少监督机制,数据录入进度难以掌控,同时也缺少问题反馈机制,还需要人与人之间私下沟通解决,效率低下,也缺少成熟的平台去解决问题。所以目前的绝大多数数据管理系统难以应用于实际业务,其应用普及度、可扩展性、安全性等因素都需要进一步提高,且关于临床医疗数据管理的系统更是少见。基于这些考虑,本文开发一套可以应用于实际工作的临床科研数据管理系统用于管理临床领域医疗数据,以提高临床科研效率。
在应用现代软件工程理念和技术的基础上,通过对现代医疗领域的临床科研工作的实际需求进行深入分析,完成了临床科研数据管理系统的设计,构建了系统整体架构、各子系统功能模块和数据库表结构的详细设计,基于ASP技术实现了该系统的各项功能。最后基于Windows平台、IIS服务器、SQL Server 2008数据库系统等环境对系统进行运行测试,测试结果表明该系统实现了高效数据采集、数据存储、数据管理和数据分享医疗领域的科研数据且系统能够稳定运行。
关键词:科研数据管理系统;医疗系统;数据分享
Abstract
Because of the complex data structure and large amount of data, it is difficult for clinical research to have enough data to support it. Especially, many clinical research data exist in a single hospital or even a single department. This phenomenon of data islands makes the development of clinical research work very difficult. Data bottleneck has become a key problem that hinders the progress of clinical research. It needs to be solved urgently.
Although our country‘s scientific research data management system has made great progress compared with the past, most of the current data management systems are designed and implemented for the use of a single department, so lack of overall consideration, it is difficult to apply in the field of complex Department relations. If applied to medical systems, there will be a lot of work to be done manually, resulting in waste of human resources. At present, the data management system lacks supervision mechanism, data entry progress is difficult to control, and there is also a lack of problem feedback mechanism. It also needs private communication between people to solve problems. It is inefficient and lacks a mature platform to solve problems. Therefore, most of the current data management systems are difficult to be applied to actual business, and their application popularity, scalability, security and other factors need to be further improved, and the clinical medical data management system is rare. Based on these considerations, this paper develops a data management system for clinical scientific research that can be applied to practical work to manage medical data in clinical field, so as to improve the efficiency of clinical scientific research.
Based on the application of modern software engineering concepts and technologies, through in-depth analysis of the actual needs of clinical scientific research in modern medical field, the design of data management system for clinical scientific research has been completed. The overall structure of the system, the functional modules of each subsystem and the detailed design of database table structure have been constructed. The functions of the system have been realized based on ASP technology. Finally, the system is tested based on Windows platform, IIS server, SQL Server 2008 database system and other environments. The test results show that the system achieves efficient data acquisition, data storage, data management and data sharing in the field of medical research data, and the system can run stably.
Key words: scientific research data
management system; medical system; data sharing
第一章 绪论
1.1 选题背景及其意义
机器学习技术和大数据时代的来临使得大规模的数据的产生、管理、应用的时机和数据的用途越来越得到广泛关注。尤其是普遍为人所用的通信业务、社交网络、电商网络等也加速了数据的传播与产生[1]。大数据,这一新兴的领域也日渐成为社会中一项不可或缺的基础资源,其意义不仅体现在数据量的“大”上,更体现在数据内部所蕴含的信息资源。但随之而来的问题是数据的管理成为了一项令人棘手的问题,数据量级的增大带来了管理的难度、共享的需求度、传输的信道压力等等问题,临床科研领域同样面临着类似的问题,亟待解决[2]。
近年来,医疗信息化成为现代医院的一大趋势,这不仅体现在数字化的医疗信息管理,也体现在现代化的高效的数据管理能力[3]。但目前绝大多数医院的医疗数据仅仅局限于医院内部使用,甚至仅仅局限于科室内部使用,数据孤岛现象极为严重。这种医疗数据的信息孤岛现象体现出我国医院与医院之间、医院与管理部门之间的各自为战现象,也体现出我国医疗卫生现代化建设的症结所在[4]。2010年,原卫生部推出了“十二五”医疗卫生信息化建设规划,简称为3521工程,3表示建设国家、省、城市的3级卫生信息化平台,以此提高我国卫生服务的质量、医疗服务水平、新农村合作的医疗水平、基本药物制度和综合管理等五项内容,建立电子病历和健康档案数据库和网络;按照这个需求制定的实施方案将会产生及其巨大的数据量,其中一张普通的CT的大小可以达到150M,一张普通的基因序列记录的数据大小大约为750M,一张病人的病理图甚至可以达到5G的数据量,如果再考虑到人口基数和不同时间点进行的不同诊断,则数据量的积累将难以极速爆炸[6]。在数据采集阶段,医疗临床数据包含大量非结构化的病理数据和病人健康情况数据,如果不能采取合理的方法采集数据则会造成数据采集过程中存在错误数据的情况[7];在数据分析阶段,如果海量数据仅仅存在于单一的医院、甚至是单个部门中,则会造成花费巨大力气采集的数据难以被最大化的使用。所以临床医疗数据采集、管理平台的建设刻不容缓,以使得临床医疗可以被标准化的采集、规范的管理和更广泛的共享[8]。
临床医疗将不是某一家医院或医院某一部门的专有资源,高效的实现海量、异构数据的采集、管理、存储和分享等方面将对临床科研的进步有很大帮助,也能促进临床数据更广泛的共享。海量的临床医疗数据也是临床科研开展的基础,如果没有数据支持,将无法开展科研工作,所以如何实现临床科研数据的有效管理成为了本文的研究重点。
1.2 国内外研究现状
1.2.1 医疗大数据管理系统发展现状
目前国内还没有关于临床科研数据管理的文献,临床科研数据管理系统的构建也更是处于国内空白,只有少数相关的内容能够借鉴。其中蔡佳慧等人[9]发现了我国卫生信息化建设的速度越来越快,医疗领域所接收的数据量越来越大、数据类型复杂,医疗领域已然进入了大数据时代。在分析现代医疗领域特点的基础上总结了现代医疗领域所面临的信息化建设的挑战和需求,并结合具体情况提出了可行的措施。周光华等人[10]在分析了现代医疗卫生领域特点的基础上判断了医疗卫生领域大数据时代的来临,在概述大数据时代各行业的情况的基础上综述了我国医疗卫生数据资源的分布情况和在医疗领域的应用情况,提出了当前大数据医疗所面临的重点和难点,并为行政部门提出了参考意见。林青等人[11]提出了智慧社区医疗系统的总体结构、系统组成以及软件功能。智慧社区医疗系统能够采集、查询、管理、统计社区医疗卫生数据并将数据进行云管理,实现社区医疗数据的云管理和互联网服务。殷焕炯[12]在分析了现代医疗信息化特点的基础上探索了大数据在现代医疗领域方面的应用现状。针对大数据的基本概念和医药研发、疾病诊断、卫生管理的特点进行分析和研究,为新时代大数据的应用方式、理论提供依据。盛芳菲等人[13]提出了一种基于Hadoop的智慧医疗数据存储和查询方法,能够实现结构化数据和非结构化数据的存储,提高了数据存储、管理的可靠性和扩展性,并优化了医疗图片数据的效率和存储方式,采用分布式的方式实现管理系统提高了数据访问的效率和数据分享的效果。Gary Cohen等人[14]将医疗数据管理系统部署到互联网中实现对病人医疗数据的管理,通过互联网远程获取数据的优势实现了对慢性病的长期监测,获取病人的病理数据,并实现对数据的分析为患者提供治疗意见。M Fuminori等人[15]提出了一种病人、医务人员和通信网络上的研究人员可以共享医疗数据的医疗数据管理系统,该系统能够存储病人治疗期间的医疗数据,并向患者公开医学信息、执行有效的远程诊断以及向医学研究提供医学数据等服务。Liu,Zhao等人[16]针对人工处理数据、人工开发接口生成工具等传统办法所面临的困境提出了一种基于XML文档的接口生成和数据访问的快速开发模型,并将其应用于医学临床数据管理系统的开发中。该模型包括两个部分:接口生成引擎和数据自动访问机制,使用抽象工厂模式来构造、应用面向对象语言的多态技术和反射技术进行实现,从而可以在各种数据库和应用平台之间快速切换,不仅节省60%的设计时间,也提高了系统的开发效率和可维护性。Karin Probst[17]提出了人力资源信息系统(HUMARIS),该系统是由国家癌症研究所研发的自动化医疗数据采集和管理系统。该系统的设计容量为每年处理、存储和检索多达1500例外科和尸检病例的临床和调查信息,提供诊断清单、病例摘要、库存、统计报告等内容。该系统的功能相对简单,但能够有效的采集和管理医学数据。
1.2.2 科研数据管理系统发展现状
我国经济的告诉发展使得国家、社会对临床科研的成果需求也更高,与此同时的投入的越来越多,医院的科研水平也作为核心竞争力显得日益突出。当前情况下的科研数据管理系统仍不普及,很多科研工作者仍然使用人工的方式进行数据采集、处理、分享和管理等[18-20],有些使用诸如excel等半自动化的方式进行数据的管理和处理,这种数据管理方式的问题主要有:(1)数据属性复杂时,管理难度很大;(2)数据手工录入,容易出现认为错误;(3)难以维护,容易发生奔溃导致数据丢失;(4)效率地下,没有利用现代化的信息化手段。所以,临床科研数据管理系统的需求度越来越高,合理的利用现代化的智能手段进行数据的采集、管理、分享、维护等操作,不仅可以大幅提高数据管理效率,而且能降低人力成本的同时减少认为错误的发生,使临床科研数据的管理更加智能化、高效化和信息化。
目前,一些高校率先建立了科研信息管理系统用于科研信息的管理,网络上也有一些做好的数据管理系统,但对于临床科研领域的数据管理显得有些不足,主要是因为:(1)高校的科研信息管理系统大多数处于实验状态,实用性偏差,难以用于实际的工程应用;(2)互联网公开的数据管理系统功能通常较为简单,且可扩展性、安全性等要素缺少系统设计,考虑因素不足,在实际使用中难以稳定运行;(3)这些管理系统大多数是为单一部门的使用而设计、实现的,所以缺少全局性的考虑,难以应用于复杂部门关系的领域,如果应用于医疗系统,则将会有很多工作需要人工去弥补完成,造成人力资源的浪费;(4)缺少监督机制,数据录入进度难以掌控,同时也缺少问题反馈机制,还需要人与人之间私下沟通解决,效率低下,也缺少成熟的平台去解决问题;(5)系统中缺少对数据格式的统一定义,在数据传输时需要数据格式转换或数据属性的抛弃以适合其他系统,导致数据完整性受到破坏,也难以普及系统。
通过上述总结可以看出,在当前情况下建构高效的临床科研数据管理系统是十分必要且十分紧急的任务,高效、准确的数据管理和完备的系统管理对于提高当前临床科研水平将有巨大帮助。当前情况下,科研数据管理系统日益朝着大众化、可用化、智能化的方向发展,主要的原因是计算机硬件设备性能的提高和硬件价格的降低,使得个人、单个团体部署个人的网络应用系统成为可能,这些客观条件使得管理系统如雨后春笋一般大量出现,逐渐取代人工。由于近年来网络成本的降低、性能的提高,使得管理系统的开发也从传统的C/S结构过度到了B/S架构,甚至是基于B/S的分布式架构、云架构等结构,大幅提高了管理系统的性能和安全性。
现代的基于互联网的B/S架构的数据管理系统的访问结构通常是浏览器/服务器的结构,主要是在浏览器端输入、发出请求,在服务器端实现系统的功能并返回处理结果到浏览器端,浏览器解析出服务器返回的结果并输出到屏幕上供用户使用[21]。这种访问方式需要在系统的服务器端运营网络应用成功、数据库系统等应用,而客户端只需要普通的浏览器即可完成服务,与传统的管理系统相比对客户端性能的要求更低,其访问者不受地域、时间、平台的限制,能够实现任意地点、任意时间的对服务器的访问以获取所需的资源。且服务器端的维护成本、维护难度也较C/S结构更容易,也最大限度的共享了网络资源。目前,国内大多数数据管理系统都是基于局域网而建设的,基于互联网的数据管理系统仍然处于起步阶段,亟待解决[22]。
通过上述论述可以发现,我国科研数据管理系统虽然较以往有了很大的发展,但绝大多数产品难以应用于实际业务,其应用普及度、可扩展性、安全性等因素都需要进一步提高。基于这些考虑,本文开发一套可以应用于实际工作的临床科研数据管理系统用于管理临床领域医疗数据,以提高临床科研效率。
1.3研究目标
我国经济总量已经跃居世界第二且发展势头不可阻挡,全面小康化也马上达到,在此阶段下,普通人对医疗的关心和需要也越来越高,如何提高现有医疗水平称为一项重点研究内容,而实现这一目标的有效手段就提高临床医疗科研水平,而海量、可用的临床数据的保证是科研高效开展的前提,所以临床医疗数据的采集、管理和分析成为了各医疗机构普遍关心的议题。
正是基于这样的考虑和需求,很多医疗机构都认识到了医疗数据对于医院未来发展的用处,也意识到了临床数据在医院管理、医疗水平提高、临床科研水平提高等方面所蕴含的高价值。很多医院都成立了数据管理平台并建构了数据管理系统,但普遍仅仅做了最基本的工作,仅仅收集了最基础的数据,没有系统的收集医疗领域的数据。
本文考虑到这些需求,将构建一套能高效管理海量的、多样化、异构的医疗数据管理系统为研究目标,以实现临床医疗数据的高效管理、提取和分享。通过对存储的海量医疗数据的分析,能够分析出病人身体状况与病症之间的关系、病症之间的关系、为病人自动推荐治疗方案或缓解策略、系统性的评估个人的身体状况等结果,通过临床科研能够实现这些分析结果或服务,以此提高患者的健康状况,为全民的健康状况所服务。因此,本论文研究的海量异构临床科研数据管理系统在提高全民身体将康水平、提高医疗科研水平等方面具有积极地、重要作用。
1.4 研究内容
通过分析医疗领域的潜在需求、挖掘领域现存的问题,并利用现代化的软件工程技术和数据管理技术,针对临床科研数据管理存在的特点和难点进行着手,构架了用于管理海量、异构的临床科研数据的管理系统。主要的工作内容为如下所述。
1、通过对国内外相关研究项目的论述和分析,阐明了本文的研究背景和研究意义;
2、研究并学习了ASP技术、SQL Server 2008技术、UML技术等内容,并将这些技术用于构建临床科研数据管理系统;
3、针对医疗领域和科研领域的特点对系统各角色用户的需求进行深入挖掘,分析出了各角色用户最需要的功能;
4、利用现代化的软件工程技术设计并实现了临床科研数据管理系统,并搭建环境进行测试。
1.5论文整体结构
第一章是总体介绍本文研究的背景和意义,阐述了为什么开展此项工作,并结合国内外的研究现状说明了本文的研究目标和研究内容。
第二章介绍了本系统设计与实现过程中需要的技术,首先说明了ASP技术的原理、特点、数据访问控制模型和系统应用的数据库系统,之后介绍所用集成开发环境Visual Studio 2010和软件工程建模工具UML,最后介绍了构建数据仓库的理念。
第三章为系统的需求分析内容。首先介绍了系统的三种类型的角色和每种角色的实际需求,之后对系统的整体结构和各子系统的结构进行了详细说明,最后对系统的非功能性需求进行了阐述。
第四章为系统设计部分。首先阐述了系统的设计原则、目的和系统整体架构,之后从结构图、流程图和时序图等方面对系统给的各子系统的设计进行了详细说明,后续对系统流程设计和E-R图设计进行描述,最后对系统的数据库各子系统的表的结构、字段等内容进行说明。
第五章为系统实现与测试章节。首先说明了系统的测试环境,之后对各子系统的功能模块的实现结果和测试结果进行说明。
第六章为总结与展望章节,总结了本文的工作内容并指出了本文工作的不足之处,也指明了下一阶段所需努力的方向。
第二章 相关技术研究
2.1 ASP 技术简述
ASP全称为Active Server Pages,中文含义是动态服务器页面,由微软公司开发的一款动态网页实现语言,能够快速的构建安全、稳定的WEB网站。网页前端主要由HTML语言、JS动态脚本语言和ASP动态语言构建,客户通过前端的操作向服务器发送请求,当WEB服务器在接收到客户发送的ASP请求消息后,会在后端对接收到的客户请求消息进行处理[23]。ASP还有一个巨大的优势是可以实现与关系型数据库等数据库、其他应用程序进行动态交互,这些特性使得ASP称为了一种相对较易上手的且安全性等性能得到保证的网页编程语言[24]。
2.1.1ASP技术原理
ASP页面具有动态性这一特点,主要体现在ASP页面不是静止存在于服务器端的,具体的ASP页面内容是根据前端请求的内容而定,这与传统的HTML页面极为不同[25]。ASP语言在后端的服务器中运行,当客户通过前端发送请求信息后,服务器才会运行ASP脚本程序,ASP程序只有在获取客户的具体请求信息后才能最终确定向客户返回的WEB内容[26]。
ASP语言是独立于浏览器的一门开放的WEB语言,其不需要像c语言一样编译才能运行。ASP实现了在后端服务器编写脚本的环境,并实现了构建动态的、与客户交互式的WEB网站[27]。ASP能够与HTML网页、其他脚本指令、ActiveX组件结合,以实现构建基于web的交互式应用程序[28],其原理图如图2.1所示。
图2.1 ASP原理图
如图2.1所示的ASP原理图可以看出前端与后端的信息流程,其原理如下所述。
- 用户在诸如IE、Chrome、Netscape等浏览器的网址输入栏中输入网址并向服务器发送ASP信息请求;
- 用户的浏览器通过网络将ASP请求发送到服务器端,本文选用的IIS服务器;
- IIS服务器收到用户发送的ASP请求后从服务器的硬盘中索引到对应的ASP文件;
- IIS服务器将索引到的文件传递到动态链接文件ASP.DLL;
- ASP文件的内容被全部执行一遍后产生静态网页内容;
- IIS服务器通过网络将静态网页内容反馈给用户的服务器;
- 用户的浏览器会将IIS服务器传送的静态HTML网页解释、执行,并将结果显示在用户的浏览器中;
- ASP的脚本内容在IIS服务器中运行,而非是用户端运行,也就是说传送到用户端的静态页面需要在服务器端生成后传递给用户,无法通过用户端自身生成,这样的一大优势是用户的浏览器不需要处理脚本内容。所以用户无法获取脚本的原始内容。也就无法复制ASP的脚本内容,用户也无法通过返回的静态HTML文件查看到网页的脚本命令,这样可以保证ASP源程序不会被用户获悉到,保证了程序的源代码难以被其他人获取,保证了程序的安全性和版权。
2.1.2ASP语言的特点
目前交互式网站的语言很多,如很早的CGI(Common Gateway Interface)语言、ISAPI(Internet Server Application Programming Interface)语言等内容。但这些技术较ASP技术都相对复杂很多,交互式网站开发的过程极为繁琐,开发的周期也往往很久,且日后的维护成本极高,如果有了BUG也极难调试,所以这些早期交互式网站的语言推广的普及度并不高[28]。ASP技术考虑、借鉴了这些传统语言的优点并摒弃了这些传统交互式网页语言的不足,即使不编写复杂的语言、脚本内容也能实现网站的动态交互。通常只需要编写VBScript或Jscript脚本和HTML静态内容,再加上ASP语言的内置动态服务器组件(ActiveX Server Component)即可快速、高效的开发出安全、功能齐备的动态交互式网络应用程序[29]。所以ASP技术具备四个十分突出的优势:(1)学习周期短;(2)网站设计更快;(3)修改开销更低;(4)后期维护代价更小且更容易。ASP本身并不是脚本程序,其之于诸如VBScript、Jscript等脚本程序的作用是为这些脚本语言在HTML页面中并运行在服务器中提供环境支持。ASP程序在文件系统中的后缀结尾为.asp,为文本文件,负责对脚本程序和HTML标记语言的整体流程进行控制,也能够通过ASP内置的动态组件扩充网站功能。ASP内置组件可以和脚本内容交叉嵌入,ASP脚本内容可以嵌入到VBScript、Jscript等脚本和HTML内容中,VBScript、Jscript等脚本也可以嵌入到ASP脚本内容中,彼此之间没有限制,这个特点进一步提高了程序开发的效率和动态特性。
从软件技术层面和应用层面看待ASP分别具备不同的特点,具体如下所述。
1、从ASP语言的技术方面看,其具有如下特点。
(1)ASP程序运行前不需要像c++等语言一样进行编译,ASP脚本内容能够集成到HTML文件中去,只需要较小的代价即可生成,可以直接通过解释执行;
(2)编辑工具没有特殊的要求,使用windows自带的记事本工具即可以进行编辑,文件名格式为* .asp;
(3)对浏览器没有特殊要求,因为ASP脚本内容是在服务器端解释、执行并产生静态的HTML文件返回到客户端的浏览器中,所以客户端的浏览器不需要具备ASP脚本内容的解释能力,只需要具备HTML文件的解释能力,这也说明如果不通过服务器解释,则客户端不能看到ASP文件对应的内容;
(4)ASP脚本也具备良好的扩展能力,不仅能够使用ASP内部的各种组件,还可以调用系统组件和ActiveX ServerComponent(ActiveX服务器组件)等工具;
(5)ASP不仅与VBScript和JScript等脚本语言相兼容,还可以通过Plug-in的插件调用的方法扩展对第三方语言的支持能力;
(6)ASP脚本内容通常只能在服务器端进行解释并产生静态的HTML文件传递到客户端的浏览器中,所以ASP的源代码难以被其他人员获取,这样保证了公司或程序员对程序的保护和保护隐私的能力。
2、从ASP语言的应用方面看,其具有如下特点。
(1)ASP负责处理客户端浏览器传送到服务器端的内容;
(2)ASP技术能够实现对服务器端数据库内容的访问、修改、删除和增加等操作;
(3)通过访问服务器日志等内容,实现服务器访问数量计量等功能;
(4)可以获取客户端浏览器的一些信息等内容;
(5)实现cookies功能,通过cookies实现记录用户的相关数据;
(6)能够实现多页面间信息的共享功能,适合开发复杂的网络应用程序;
(7)能够与VBScript、Jscript等脚本和HTML标签语言相兼容,提高网站的开发效率和动态特性;
(8)可以使用诸如c++、java等高级语言作为扩展内容,通过c++、java等语言制作动态服务器组件扩充功能。
2.1.3 ASP数据访问控制模型
微软公司为了提高应用程序对数据库的访问性能开发了UDA(Universal DataAccess,统一数据访问)数据访问控制模型。UDA包括三个部分:(1)OLE DB(Object Link and embed DataBase,对象链接和嵌入数据库);(2)ODBC(Open Database Connectivity,开放数据库连接);(3)ADO(ActiveX Data Objects,ActiveX数据对象)[30]。
其中OLE DB主要用于处理异构平台中的各种非结构化信息和结构化信息,诸如图片、文本、电子邮件等内容。ADO是处于顶级结构,作为网络应用程序的的数据库访问接口,网络应用程序通过ADO访问系统中ODBC和OLE DB。这样的分离结构使得网络应用程序的开发人员不需要对ODBC和OLE DB了解太多,提高了网络应用程序的开发难度和效率[31]。在连接数据库时需要配置ODBC,在ODBC中配置响应的数据源名称、制定驱动程序等操作。
如图2.2所示,为UDA数据访问控制模型结构图,从图中可以看出ADO支持多种数据库,诸如SQL Server、Oracle等主流数据库[32],本文选用SQL Server 2008作为服务器端数据库。
图2.2 UDA模型示意
2.2 SQL Server 2008
2.2.1 SQL Server 2008概述
SQL Server主要由微软公司推出的系列数据库软件系统,并于2008年10月将SQL Server 2008系列产品推向市场。SQL的全称为Structured Query Language,中文含义为结构化查询语言。SQL Server 2008能够实现了直接存储非结构化、半结构化和结构化的文档数据,同时能够高效实现数据的查询、删除、添加、数据同步、数据分析等操作。同时,SQL Server 2008支持多种设备中运行[33]。
通过数据库引擎和结构化的数据存储能力,SQL Server 2008能够为软件开发人员、信息工作者、数据管理员等不同角色的人群提供不同层次的解决方案。SQL Server 2008平台具有很高的可靠性、可扩展性和安全性,同时能够降低数据管理的成本和时间。SQL Server 2008的加密措施较以往版本有了很大改进,在不需要更动现有程序的基础上可以实现整个数据库的数据、数据库文件、数据库日志内容的加密,这样可以让公司既做到了保护数据隐私也做到了减小开销。与此同时,SQL Server 2008还具有审查数据操作的功能,从而进一步提高了安全性。数据操作审查不仅仅包含数据的修改操作,还包括何时对数据进行读取等操作的审查。同时,SQL Server 2008还可以定义数据库中文件审查的范围,为平台中每一个数据库指定单独的数据文件操作审查范围,更加灵活[34]。
2.2.2 SQL Server 2008的主要特点
SQL Server 2008能够高效的执行数据管理工作,降低软件系统开发的时长和成本等开销,其具有如下三个突出的特点。
1、能够保证数据的安全性。SQL Server 2008平台较上一个版本在安全性方面主要有三个方面的提高:(1)数据的加密更安全、更容易。SQL Server 2008平台中不需要像SQL Server 2005平台,不需要对应用程序作出修改即可做到对对整个数据库或者部分数据库文件进行加密处理,极大的方便了软件系统的开发人员,也使得用户在未授权的情况下无法访问数据库,增加了数据库的安全性[35]。(2)系统密钥管理更安全。SQL Server 2008平台提供了密钥管理和系统文件加密的解决方案,且这些密钥由系统供应商进行管理,提高了安全性。(3)SQL Server 2008对数据操作的审查更为严格,审查内容涉及数据的修改、数据读取时间等内容,进一步提高了数据库的安全性。
2、SQL Server 2008平台业务具有良好的可持续性。SQL Server 2008平台为用户提供了相对简单的操作界面和可靠性很高的数据管理功能。(1)SQL Server 2008较上一个版本对数据库镜像文件的可靠性做了进一步提高。(2)SQL Server 2008平台较以往版本新增加了执行计数功能,能够对数据库中不同阶段的访问耗时进行记录。同时,SQL Server 2008平台还扩展了视图管理和扩充为动态视图管理等内容,增强了信息的显示能力。
3、性能较以往大幅提高。现在软件系统的架构通常较为复杂,各种开销也也来越高,对数据库的响应时间的要求也越来越高,承载的用户数量也越来越多。SQL Server 2008实现了将以上功能进行有机整合,使SQL Server 2008平台能够有效承载和实现工作负载[36]。(1)SQL Server 2008平台能够采集系统储存性能分析和系统性能检测的数据,以方便管理人员对系统的各项指标进行调整,提高系统性能。(2)为了降低备份数据所占用的空间大小,SQL Server 2008对备份的数据库进行了数据压缩,有效的降低了磁盘的空间开销和磁盘的I/O开销。(3)SQL Server 2008也对数据进行了一定程度的压缩,降低了数据存储的开销。
2.3 Visual Stutio 2010
Visual Studio是微软推出的系列软件,用于Windows平台下的应用程序开发。Visual Stutio 2010较Visual Stutio 2005在界面、流程等方面的设计有了很大的改进,使用起来更加方便。Visual Stutio 2010能够对Windows7平台完美支持,Visual Stutio 2010能够支持SQL Server系列数据库和Oracle数据库等。此外,Visual Stutio 2010具备如下九个新功能[37]:(1)具有动态的编程模式;(2)能够实现多个显示器分屏的操作;(3)支持测试驱动开发;(4)支持office;(5)新增Quick Search模式;(6)支持C++新特征;(7)调整IDE功能,增强现有功能;(8)能够利用Ribbon创建窗口化程序;(9)实现了对F#的支持[38]。
另外,Visual Stutio 2010还有以下五个功能的创新。
1、应用程序的管理模式采取功能分担的模式,改变了原始的不同角色在生命周期期间管理的不平等问题,更加适应了多角色系统。
2、Visual Stutio 2010支持了软件开发和网络应用系统开发的最新技术,支持了最新的软件开发框架并未开发者提供了最合适的开发工具。
3、通过改善软件设计等内容,提高了开发者的开发体验,也使得开发过程更加灵活,全面提高了开发效率和工作体验。
4、Visual Stutio 2010对跨部门应用提供了全新的支持,能够实现用户在不同的组织内进行应用创建,实现了跨部门的开发支持。
5、Visual Stutio 2010通过提供拖拽式操作模式不仅简化了开发难度且提高了开发效率,并结合VB、C++等语言实现了相关功能。
2.4 UML
2.4.1 UML概述
统一建模语言(Unified Modeling Language,UML)是面向对象(Object Oriented,OO)技术的通用建模语言。因为UML能够准确、充分的表述出软件框架中的静态、动态信息,且UML较其他OO建模语言更简单,综合因素使得UML称为OO建模语言中的标准。UML从普通的信息管理系统到复杂的网络分布式应用系统等各领域都能够进行准确的建模,能够清晰描述出软件开发的视图并指导系统进行开发[39]。UML通常包含三个内容要素:(1)基础建构要素;(2)建构要素之间的规则描述;(3)公共机制。UML的基础建构要素通常包含实体、关系、图等内容。其中实体是整个UML建模中最基础、最重要的成分,关系的作用是将各实体进行整合,图是对有关联的实体进行聚集[40]。
通常讲UML主要具有如下几方面的优点:(1)UML的建模语言标准是统一的,是基于现有的面向对象方法进行抽象、提取和整合而成,进而UML实现了建模语言的标准化工作,一定程度上也使得UML建模方法称为面向对象方法体系中标准化的建模方法;(2)UML能够通过简单的操作实现复杂的面向对象关系的表述;(3)相对于其他的面向对象建模方法而言,UML建模方法更加简单易学;(4)UML自身具有一定的独立于软件开发过程的特点;(5)UML主要使用图形化的拖拽式方法实现建模,可视化能力和效果极强;(6)UML可以用于软件系统开发的需求分析、系统设计及最后的软件测试等各个阶段中[41]。
2.4.2 UML的图
UML图主要包含三种类型:(1)类图;(2)用例图;(3)时序图。三种图的公共点都是利用UML内部的基础元素和元素之间规则的结合进行组成,抽象来讲,UML图是由顶点和线段,其中顶点表示实体,线段表示实体之间的关系[42]。下面对
1、类图。类图是面向对象体系建模内容中最常用的一种图类型,属于UML中的静态视图。类图的功能是表示对象内容、接口范式和彼此之间协作的关系。类图的内容主要包括类名、方法、接口、诸如关联关系和依赖关系等关系[43]。
2、用例图。用例图的主要功能是描述用例、用例中的参与者和彼此之间的关系。用例图通常包含如下内容:(1)用例;(2)参与者;(3)彼此关系;(4)泛化关系等。用例图为一种静态的UML建模视图。
3、时序图。活动图是状态图的一种特殊类型,活动图主要体现了软件系统各个实体之间的活动流程。与类图和用例图不同的是,活动图属于UML的动态视图,是UML建模系统中重要的一部分。时序图体现出了系统或实体的活动以及状态转换等内容[44]。
2.5本章小结
本章重点阐述了医疗领域临床科研数据管理系统的构建技术,其中包括ASP技术原理、特点和数据访问控制模型,SQL Server 2008数据库系统,Visual Studio 2010软件系统开发集成环境,UML建模语言等,分别从这些技术和思想的历史发展、技术特点等内容进行详细说明。
第三 章需求分析
3.1用户角色分析
本系统的角色共分为三种:(1)医生;(2)信息管理员;(3)系统管理员。其中医生主要拥有录入病人的病例数据、查询和导出临床科研数据系统的数据的权限,信息管理员主要拥有对数据进行整理、归档、维护等权限,系统管理员主要拥有系统维护、配置设置和更新、角色权限分配等权限。如表3-1所示,为临床科研数据系统三种角色分别对应的权限。
表3-1临床科研数据管理系统角色功能分析
编号 |
用户名 |
角色名 |
角色描述 |
1 |
医生 |
医生查询角色 |
医生可以查看权限内项目的病人病例数据、录入患者病例数据、查看病人病例数据录入进度、反馈项目存在的问题、查看项目的概况信息等。 |
2 |
信息管理员 |
信息管理角色 |
信息管理员主要负责项目数据的管理、归档工作,具有项目数据查看、数据录入、提出项目问题反馈等权限,同时还具备导出数据、配置数据导出配置等权限。 |
3 |
系统管理员 |
系统管理角色 |
系统管理员主要负责系统整体配置的管理和用户权限设置等问题,同时负责实现系统的版本维护、升级等工作。 |
3.2 分系统需求分析
临床科研数据管理系统主要负责存储、查询、管理临床医疗数据以供科研使用,临床科研数据管理系统按照功能和实际业务可以将整体系统分为七个子系统,即:登录管理子系统、研究信息管理子系统、项目管理子系统、质量管理子系统、数据导出子系统、统计分析子系统和系统配置管理子系统。临床科研数据管理系统用例图如图3.1所示。
图3.1临床科研数据管理系统用例图
3.2.1研究信息管理子系统
研究信息管理子系统主要实现研究信息的展示、研究数据的查询、数据录入进度展示与查询、问题反馈的展示。研究信息管理子系统中最重要的功能模块是研究数据管理模块,其中研究数据管理模块能够通过键入病人姓名查询该病人的病例数据,也能够通过键入的病人的姓名进行病人病例数据输入或修改。不同的科研项目数据库拥有不同的数据类型,例如胃癌核心信息数据库中的数据清单包括九章:(1)基本信息;(2)基线评估;(3)肿瘤学评估;(4)手术信息;(5)术后恢复;(6)系统治疗;(7)放射治疗;(8)介入治疗;(9)随访信息。每页数据清单都有详细的内容需要填写,例如胃癌核心信息数据库中的基线评估清单中需要填写肿瘤位置、肿瘤浸润深度、淋巴结转移、远处转移、胃癌所致合并症等内容。
研究信息管理子系统包括如下几个重要的功能:
项目选择、项目概况展示、项目概况查询、研究数据查询、研究数据管理、数据录入进度管理、数据录入进度查询、反馈问题的管理等功能。研究信息管理子系统的用例图如图3.2所示。
图3.2 研究信息管理子系统用例图
3.2.2项目管理子系统
项目管理子系统主要实现了研究该研究项目的部分规则的设置与维护。例如临床科研数据管理系统中的胃癌核心信息数据库的研究中心代码、研究中心的名称、联系电话、负责人、项目概况等等内容。项目管理子系统还实现了部件信息提示对应的功能、反馈问题的回复功能以及规则设置的功能,用户可以自定义规则。
项目管理子系统包括如下几个重要的功能:
新建研究中心、编辑研究中心内容、研究中心的授权用户管理、研究中心的用户邀请、项目概况的管理、编辑部件提示信息、搜索部件提示信息、删除部件提示信息、问题反馈管理、规划设置管理等功能。项目管理子系统的用例图如图3.3所示。
图3.3研究信息管理子系统用例图
3.2.3质量管理子系统
质量管理子系统主要负责检查录入数据的结构正确性、数据完整性等内容,以决定是保存数据到数据库中还是需要对数据进行修订后再保存到数据库中。质量管理子系统的用例图如图3.4所示。
图3-4 质量管理子系统用例图
3.2.4数据导出子系统
数据导出子系统的最主要功能是能够导出自定义格式的数据到本地,以供后续科研实验使用。在进入所选数据库后进入数据导出子系统,可以自定义所需导出的数据字段,例如基本信息 Patient Demography:Name;Sex;ID_National;Nationality;Race;基线评估 Baseline:Date_FirstD;Date_ComfirmedD;Age;His_Cancer;His_Familycancer;His_FamilyGC;肿瘤学评估 Cancer Identification:Location_Tumor;Size_Tumor_Patho;Number_Tumor等数据字段。在配置好导出字段后点击“导出”按钮即可导出所需要的数据。
数据导出子系统包括如下几个重要的功能:
新建数据导出、导出字段查看、导出字段编辑、数据导出、编辑导出的数据等功能。数据导出子系统的用例图如图3.5 所示。
图3.5 数据导出子系统用例图
3.2.5 统计分析子系统
3.2.6 系统配置管理子系统
系统配置管理子系统包含了两个部分的功能:项目的配置与管理和系统用户的管理。其中项目的配置与管理的项目信息功能实现了编辑项目信息;项目分组功能实现了项目的分组管理;项目数据字段的配置实现了项目所需要填写的数据字段,例如临床科研数据管理系统中的胃癌核心信息数据库的随访信息的“患者状态”部件,配置的部件代码为Condition_Followup,部件类型为单选;项目配置还实现了诸如表单配置等功能。在系统用户的管理功能模块中包括了机构信息的管理和用户信息管理,其中机构信息管理主要包括了项目信息编辑、可访问用户的授权、机构的项目授权,用户信息管理包括用户信息的编辑、重置密码等功能。
系统配置管理子系统包括如下几个重要的功能:
项目组管理、项目组信息管理、数据配置管理、表单配置管理、数据配置管理、数据分类管理、帮助解答管理、机构信息管理、用户管理等功能。数据导出子系统的用例图如图3.6所示。
图3.6 数据导出子系统用例图
3.3系统的非功能性需求分析
3.3.1经济可行性分析
临床科研数据管理系统课题的提出为了使用现代化的信息方法管理临床数据以供科研实验使用,不仅可以节省人工记录数据的经济和时间开销,且能够大幅提高数据记录的效率和准确性,提高临床数据的共享范围和数据利用率,有利于医疗机构的科研水平更上一个台阶。
临床科研数据管理系统是基于B/S架构而设计与实现的,B/S架构的系统的业务处理基本都在后端执行,对浏览器的前端的性能要求很低,一般的PC已经完全能够满足访问该系统,对电脑没有特殊的硬件要求和软件环境要求,较C/S架构对PC的要求更低且更容易实现数据的共享与管理。
3.3.2响应时长
临床科研数据管理系统包含很多数据库,例如胃癌核心信息数据库、血清信息数据库等数据库信息。不同数据库所包含的数据量不同导致不同数据库的响应时长也各不相同,数据量偏大的数据库的响应时长会较数据量偏小的数据库的响应时长更久一些,但系统的响应时长都不超过5s。对于系统的业务功能部分,涉及到数据的访问、数据传输、系统反应的操作,但响应时间整体不会超过10s。
3.3.3安全性和保密性需求
临床科研数据管理系统中存储了大量病人真实的病例数据和病人的隐私数据,用途也仅仅局限于科研实验使用,如果被泄露到其他地方将会对病人造成难以估量的影响。所以,临床科研数据管理系统的保密性和安全性要求很高,主要从权限控制和信息传播范围控制两个方面实现系统的保密性和安全性。
在临床科研数据管理系统的用户权限控制方面,是系统安全性保障与管控的一项基础工作,对系统安全性起到至关重要的作用。系统用户的权限控制体系需要经过科学的设计和严密的控制,才能保证系统的用户只访问其权限所对应的数据,避免其不适当的操作影响其他用户的安全,也可以避免不合法的用户非法访问该系统。
临床科研数据管理系统在数据保护方面的措施主要是数据访问权限控制、数据加密和数据备份。数据访问权限控制主要指未经授权许可的用户不能访问该数据,以避免数据恶意透漏给其他非法访问者。数据加密主要指系统对于传输在网络上的数据实现了加密传输,以避免网络中的数据包被截获时数据的明文直接暴露给截获者,通过数据加密传输这个机制可以保证数据以一张相对安全的方式在互联网这个开放的平台进行传输。数据加密还有一项重要的机制,就是数据库中的用户登录密码均采用密文进行保存,加密算法采用成熟得SHA加密算法,进一步保证数据的安全性。数据备份指的是对SQL Server 2008数据库中存储的数据定期进行数据备份,以防止因为数据库系统的故障导致数据丢失,如果发生数据库故障即可以使用备份的数据库文件进行数据恢复。同时,为了进一步提高数据的安全性,可以定期将备份的数据库文件拷贝到诸如移动硬盘的存储介质中进行额外保存,以防止系统数据丢失。
3.3.4易用性要求
临床科研数据管理系统的使用者绝大多数都不是计算机专业的毕业生,所以本系统的操作流程不能过于复杂计算机操作,而是要根据医院相关工作人员的习惯进行操作流程和界面设计的简化,以简单的操作完成所需的完成的功能。
3.3.5其他非功能性的需求
1、系统的先进性
临床科研数据管理系统的数据管理模型、后端实现方法、数据库实现技术和其他相应的技术都采用相对前沿且成熟得技术手段,但对硬件没有特殊要求。
2、系统通用性
系统主要配置在服务器的后端,用户通过浏览器对服务器进行访问,不会受到访问者低于和访问时间的限制,所以该系统具有很强的通用性。
3、系统的实用性
本系统主要结合领域的业务特点和需要实现了临床科研数据的管理,该管理系统具有操作简易、管理规范、组织严密等特点,具有很强的实用性。
4、系统的可扩展性
系统在后续的业务方面还会有所拓展,所以系统在开发时需要预留好接口以备后续拓展使用,这也要求系统的模块设计要做到高内聚、低耦合,使得系统的功能在发生删除或增加时系统结构不至于有过大的变化。
3.4本章小结
本章主要说明了临床科研数据管理系统的需求分析,首先说明了系统的三种角色并对各种角色的功能进行详细说明;之后对系统的六个子系统进行需求需求分析,并结合用例图对系统的子系统进行需求分析;最后对系统的五项非功能的需求分析进行详细的阐述,在响应时长、可行性等方面对系统进行分析。
第四章 系统设计
4.1 设计的原则和目的
临床科研数据管理系统主要存储着病人的病例数据以用于科研实验,数据的种类繁多且数据量可能会达到PB级,且对海量的数据进行处理的实时性要求很高,这些特点和要求给临床科研数据管理系统的实现带来了不小的挑战。例如在系统的响应时长和服务的并发处理方面,在大规模数据量方面实现海量并发请求的处理的实时反馈,对系统的性能、响应能力和高并发的支持能力都提出了很高的要求。医疗数据的特点是数据量大、数据间的关联性强、不同用户对数据字段请求的也不一样,这些对系统的数据管理模型提出了很高的要求。而且,系统存着的海量数据的查询、分析、提取等任务的类别很多,都为系统的性能进一步提出了要求。另外还有如下几个设计的原则和目的。
1、采用结构化、平台化的柔性开发方法,以保证系统后续的可持续发展
临床科研数据管理系统采用是B/S架构进行开发,设计模式上采用MVC模式、模块化设计思想,以持续性的适应医疗系统和科研系统的变化情况,为后续的科研工作提供数据保障。
(1)架构化的数据管理平台
临床科研数据管理系统在设计时考虑到临床科研数据管理的一体性问题,对系统的架构进行进行设计,包括:用户信息与权限的管理、项目的纵向管理、项目的横向管理、系统管理等内容。
(2)平台化科研数据管理工具
为了满足临床科研实验的数据需求和管理的要求,实际了临床科研数据管理系统以完成海量数据的管理工作,系统设计了不同的模块完成整体功能,系统的用户只需通过简单的培训就可以基本掌握该系统的使用。
2、针对临床科研的特点设计并开发该系统
针对临床科研工作的特点对本系统进行设计、规划和实现,对科研科研数据进行全方位、立体化的管理,并提高数据获取的效率和准确性。
3、系统的技术特点
该系统采用先进的软件开发方法和信息化策略,通过B/S架构实现了临床科研数据管理系统的搭建工作,通过架构华、平台化的方法实现了系统整体框架和各功能模块的设计与实现,既实现了现有功能需求,也为后续扩展留下了接口。
4.2 系统架构设计
临床科研数据管理系统设计到海量医疗数据的储存、提取与管理,需要优化海量数据的存储结构,才能提高数据的提取、管理效率,为临床医疗的科研工作提供数据支持,为了满足这一需求需要考虑以下两个问题。
(1)系统能够满足海量结构复杂的数据的高效管理
数据管理系统中存在着大量类型复杂、类型各异的数据,例如胃癌核心信息数据库中,仅基线评估清单中就保存着肿瘤位置、肿瘤浸润深度、淋巴结转移、远处转移、胃癌所致合并症等数据字段,除了结构化的数据外,还有一些非结构化的数据需要保存,诸如系统中存储的一些图片数据。
(2)实现了海量复杂数据的管理和实时的业务反馈
通常情况下,系统的实时性与系统的复杂性成反比,也就是说越是复杂的系统其实时性的服务能力越低,反之亦然。所以一般系统都会在这两个相反的指标上选一个平衡点,本系统对实时性的要求较一些服务型的网站低一些,但医疗数据的复杂性是无法避免的一个问题,所以系统更多重点在复杂数据的管理上,对实时性要求不是特别高,但系统的响应时间也通常不超过5s。
图4.1 系统设计架构图
如图4.1所示,为临床科研数据管理系统的架构层次图,各层次具有的功能如下所述。
(1)业务层:业务层处于临床科研数据管理系统架构的最顶层,业务层调用功能层的接口完成对外服务,为医生、信息管理者、系统管理者等用户提供多样化的服务,包括数据导出、系统配置、信息查询、信息统计等服务。
(2)功能层:该层位于业务层的下层、平台层的上层,功能层主要为服务层提供功能接口,同时也从平台层获取服务接口,形成结果后为业务层提供服务。该层主要包括数据采集、数据归档和数据的统计分析。
(3)平台层:该层位于功能层的下层、基础层的上层,主要是搭建系统的整体平台,完成底层的基础计算和数据流处理,包括数据批量处理、数据统计分析的基础算法库、数据流实时处理等功能。
(4)基础层:基础层处于临床科研数据管理系统架构的最底层,为系统的正常运行提供支持,该层主要包括了数据库、分布式计算文件系统、多服务器等内容,以完成海量医疗科研数据的存储与访问,为系统提供硬件和基础软件的支持,保证系统的高可用性、高性能和高可扩展性。
通过上述说明的临床科研数据管理系统的架构层模型的特点、内容、数据采集处理模型、数据流计算引擎、数据存储优化策略等内容,构建了如图*所示的系统数据管理与分析的设计框架图。
图4.2 系统数据管理与分析的设计框架图
海量异构的临床科研数据通过基于Storm的实时大数据处理框架整合到数据库中,并通过数据统计与分析的算法进行状态动态的采集与分析,实现数据从“采集端-储蓄端-使用端”的整合,实现为不同用户提供精准化的数据服务和安全可靠的数据管理业务,进而使得最后使用数据更为高效。
临床科研医疗数据管理系统有下面三个特点:
(1)系统具有一定的灵活性。临床科研数据的需求会随着项目的不同与发展需要的数据字段也会有所变化,可能会增加新的表单、新的字段,或删除现有冗余的表单或冗余的字段,系统要能够在不大规模变动的基础上进行重构。
(2)系统要具备可扩展的能力。临床科研数据管理系统的功能需求存在动态性,需要现有系统框架具有一定的可扩展性,以备后续系统扩展用。
(3)系统模块具有重复使用性。临床科研数据管理系统不仅能够应用与临床科研数据的管理,也能够用于其他海量异构数据的管理,例如用于交通数据的管理、物流数据的管理等领域。
4.3 功能结构设计
按照功能和实际业务的需求分析,临床科研数据管理系统将整体系统分为六个子系统,即:研究信息管理子系统、项目管理子系统、质量管理子系统、数据导出子系统、统计分析子系统和系统配置管理子系统。具体功能结构图如图所示。
图4.3 系统功能结构设计图
软件工程领域的时序图是以时间顺序为基线对对象间的消息互动进行描述的,通过刻画对象间不同时间顺序发送的消息来清晰的表示出对象间的顺序和关系。下面结合流程图与时序图对系统的子系统进行详细的说明。
4.3.1 登录管理子系统
4.3.1.1 注册账户设计
登录管理子系统是临床科研数据管理系统的一个基础功能模块,该子系统分为账户的注册和账户登录,如图*所示,为系统的账户注册流程图。
图4.5 账户注册功能模块流程图
用户打开临床科研数据管理系统后首先需要登录系统,如果没有账户需要点击“注册”按钮注册账户。本系统的注册需要邀请码才能进行注册,如果没有邀请码则需要向系统管理员申请邀请码,后续注册步骤与常规网站注册流程相似,需要注意的带星号的空是必要填写的。用户填写完所有的注册信息后,信息的内容会通过网络传递到服务器的后端进行审核,如果用户注册的信息经过审核通过则会提示用户注册成功,否则返回注册失败,需要用户重新进行账户的注册。如图*所示,为账户注册功能模块的时序图。
用户在登录临床科研数据管理系统后,系统后加载登录主页面,加载主页面需要1000毫秒的时间。之后会通过UserUtil.isLogin()函数判断用户是否登录过该系统,没有登录过则调用startActivity()函数进行登录,并跳转到注册页面,供用户填写注册信息。用户填写好信息后调用SendMsg()函数将用户填写的信息发送到服务器进行处理,检验合格后反馈给用户注册成功的信息,并调用saveUserInfo()函数将用户的信息保存到服务器的数据库中以被下次用户登录检验。
图4.6 注册模块的时序图
4.3.1.2 登录系统设计
用户登录功能模块是所有用户都要用到的功能模块,登录功能与常规网络系统类似,通过输入用户的用户名和密码到系统服务器进行比对,如果正确则返回登录成功和系统主页面,否则返回登录失败。
如图*所示,为临床科研数据管理系统的登录功能模块的时序图。用户进入系统后需要输入账户名和密码并通过login()函数传递到服务器中进行正确性校验,并返回用户的登录状态。通过saveInfo()保存用户的活动信息,并通过sendMsgToTarget()函数将信息通过网络传送到服务器端进行处理和保存,并通过onCreate()创建用户的个性化主页面内容或跳转到对应的页面中。
图 4.8 用户登录功能模块时序图
4.3.2 研究信息管理子系统
研究信息管理子系统重点功能是科研数据的查询和录入进度的展示,通过研究信息管理子系统的科研数据查询接口可以查询个人项目的所用病人的数据,也可以通过输入特定病人的姓名查询特定病人的临床病例数据。
研究信息管理子系统主要需要设计如下功能模块:项目选择、项目概况展示、项目概况查询、研究数据查询、研究数据管理、数据录入进度管理、数据录入进度查询、反馈问题的管理等功能模块。其中研究数据查询功能模块的时序图如图4.9所示。
系统信息管理员填写注册信息后通过sendSearchMsg()将查询请求通过数据查询接口发送到数据查询页面,并通过数据访问通道DAO实现与数据库的数据交互,查询成功后通过函数returnInfo()返回查询数据的结果,调用EncapData()函数将数据封装后返回到前段供用户使用。
图4.9 系统管理角色查询研究数据的时序图
问题反馈的管理功能模块的时序图如图4.10所示。信息管理员选择未解答的问题并点击反馈按钮发送请求后进入问题反馈处理页面,填写好反馈内容后通过sendMsgToTarget()函数将反馈的数据发送到服务器端的数据库中调用saveInfo()函数进行数据保存,并调用returnInfo()函数返回数据到前段。
图4.10 系统管理角色回复问题反馈的时序图
4.3.3项目管理子系统
研究中心内容编辑功能模块的时序图如图4.11所示。在选定管理中心后点击“编辑”按钮调用给你jumpToPage()函数跳转入管理中心编辑页面,填写好编辑信息后调用saveInfo()函数保存结果到系统数据库中。通过returnInfo()函数将信息返回到前段提示用户,并调用refreshPage()函数刷新页面,显示新的内容。
图4.11 研究中心内容编辑的时序图
4.3.4 质量管理子系统
质量管理子系统的数据审查功能模块的时序图如图4.12所示。在录入数据后系统会自动调用数据审查模块对录入的数据的完整性、结构合法性等内容进行审查,系统调用审查dataReview()函数对数据,如果审查结果有疑问则调用jumpToPage()函数跳转入人工审查页面,人工调用manualReview()函数通过数据库调用有疑问数据记录的详细数据,通过returnInfo()函数将信息返回到前段提示用户,并调用refreshPage()函数刷新页面,显示新的数据审查结果。
图4.12 数据审查的时序图
4.3.5 数据导出子系统
研究数据导出功能模块的时序图如图4.13所示。信息管理员调用selectField()函数选择待导出字段后提交数据导出请求,进入数据导出页面后调用exportData()函数开始数据导出,调用sendMsgToTarget()函数向服务器发送数据导出请求后,服务器将数据发送至前段完成数据导出。
图4.13 研究数据导出的时序图
4.3.6 统计分析子系统
4.3.7 系统配置管理子系统
系统管理员系统信息及版本进行维护功能的时序图如图4.14所示。系统管理员查看系统信息及版本维护操作后提交修改请求,通过jumpToPage()函数跳转入系统维护页面,后调用versionMaintain()函数开始系统维护,维护后调用saveInfo()函数将结果保存到系统数据库中,并通过returnInfo()函数将结果返回到前端。
图4.14 系统管理员系统信息及版本进行维护功能的时序图
系统部件设计功能模块的时序图如图4.15所示。系统管理员查看系统部件信息后提交修改请求,通过jumpToPage()函数跳转入部件信息编辑页面,后调用elementEdit()函数开始部件信息编辑,编辑完成后调用saveInfo()函数将结果保存到系统数据库中,并通过returnInfo()函数将结果返回到前端。
图4.15 系统部件设计的时序图
4.4 系统流程设计和E-R图设计
4.4.1 数据录入流程
临床科研数据管理系统最主要的功能是实现海量异构医疗数据的管理,所以数据录入流程是该系统重要的流程之一,能否实现高效、准确的数据录入是系统后续功能实现的基础步骤。首先需要登录系统并对权限进行验证,权限通过后方可录入数据到系统中,可以查询某位病人的姓名以继续录入数据或修改数据,也可以新建病人的姓名以开启新的数据条目,检查数据录入格式后将数据保存到系统数据库中。具体的数据录入流程图如图4.16所示。
图4.16 数据录入请求流程图
4.4.2 数据字段导出流程
临床科研需要大量的医疗数据作为支撑,所以从临床科研数据管理系统中导出所需数据是提高临床科研水平和效率的关键环节。第一步与数据录入流程一样需要先登录系统并进行权限验证,选择需要导出数据的项目,通过选择或查询的手段选定所需导出数据的字段并开始数据导出。具体的数据导出流程图如图4.17所示。
图4.17 数据字段导出请求流程图
4.4.3 数据删除流程
随着临床科研需求的变化或系统的变化等原因,使得数据库中的数据需要进行部分删除或调整。数据删除流程的第一步是登录系统并进行权限验证,通过后可以进行数据删除操作。首先需要选定项目,之后选择数据或通过查询的方式选择数据,进行删除操作,系统进行删除权限验证、信息审查、正确性审查后删除数据库中数据并返回删除成果提示。具体的数据删除流程图如图4.18所示。
图4.18 数据删除请求流程图
4.3.4 系统E-R图设计
系统E-R图如图4.19所示。
图4.19 系统部分E-R图描述
4.5 数据库设计
4.5.1系统用户相关表
如表4-1至4-3为系统用户相关的数据库表。其中表4-1为机构信息表,该表记录了机构地址、机构编号、机构名称等内容;表4-2为用户信息表,该表记录了用户的个人信息,诸如用户姓名、邮箱地址、联系电话等内容;表4-3为扩展的用户信息表,该表通过字段AbpUserId与表AbpUsers相关联,记录了用户一些扩展信息。
表4-1机构信息表Organization详细描述
序号 |
字段名 |
字段类型 |
字段长度 |
是否为关键字 |
备注 |
1 |
Id |
int |
- |
是 |
|
2 |
CreationTime |
datetime2 |
7 |
否 |
|
3 |
CreatorUserId |
bigint |
- |
否 |
|
4 |
IsEnabled |
bit |
- |
否 |
是否有效 |
5 |
LastModificationTime |
datetime2 |
7 |
否 |
|
6 |
LastModifierUserId |
bigint |
- |
否 |
|
7 |
OrgAddress |
nvarchar |
50 |
否 |
机构地址 |
8 |
OrgCode |
nvarchar |
50 |
否 |
机构编号 |
9 |
OrgName |
nvarchar |
50 |
否 |
机构名称 |
10 |
OrgTelephone |
nvarchar |
50 |
否 |
机构联系电话 |
11 |
OrgWebSite |
nvarchar |
50 |
否 |
机构官网 |
表4-2 用户信息表AbpUsers详细描述
序号 |
字段名 |
字段类型 |
字段长度 |
是否为关键字 |
备注 |
1 |
Id |
int |
- |
是 |
|
2 |
Name |
nvarchar |
32 |
否 |
姓名 |
3 |
NormalizedEmailAddress |
nvarchar |
256 |
否 |
邮箱地址 |
4 |
NormalizedUserName |
nvarchar |
32 |
否 |
用户名 |
5 |
Password |
nvarchar |
128 |
否 |
加密密码 |
6 |
PasswordResetCode |
nvarchar |
328 |
否 |
|
7 |
PhoneNumber |
nvarchar |
max |
否 |
联系电话 |
8 |
SecurityStamp |
nvarchar |
max |
否 |
|
9 |
Surname |
nvarchar |
32 |
否 |
|
10 |
UserName |
nvarchar |
32 |
否 |
用户名 |
表4-3 扩展用户信息表Customer详细描述
序号 |
字段名 |
字段类型 |
字段长度 |
是否为关键字 |
备注 |
1 |
Id |
int |
- |
是 |
|
2 |
AbpUserId |
bigint |
- |
否 |
关联AbpUsers表Id |
3 |
CreationTime |
datetime2 |
7 |
否 |
|
4 |
CreatorUserId |
bigint |
- |
否 |
是否有效 |
5 |
IsAdmin |
big |
- |
否 |
是否超级管理员 |
6 |
IsOrgManager |
big |
- |
否 |
|
7 |
LastModificationTime |
datetime2 |
7 |
否 |
|
8 |
LastModifierUserId |
bigint |
- |
否 |
|
9 |
OrganizationId |
int |
- |
否 |
所属机构编码 |
4.5.2项目配置相关表
如表4-4至4-9为项目配置相关的数据库表。其中表4-4表示项目组信息表,项目组主要用于临床研究团队同时拥有多个研究项目需要记录时的情况,该表记录了项目组的创建时间、项目组编号、项目组名称等内容;表4-5为项目信息表,表示每个临床项目的具体信息,该表记录了项目的相关信息,诸如项目名称、项目编号、项目所属项目组、项目描述等内容;表4-6为项目特殊配置表,主要针对案例详细信息的是否展示配置,每个研究项目需要的案例基本信息有细微差别,根据配置统一化,该表记录了项目的一些详细信息,其中包括项目是否已全系视图显示、是否脱敏、是否以姓名首拼音码显示等项目配置。表4-7为授权机构临床研究权限表,该表通过OrganizationId字段和ProjectId字段实现了机构和项目的关联记录。表4-8为研究中心信息表,每个研究项目都可以同时拥有多个研究中心,该表记录了研究中心的信息,主要包括研究中心地址、研究中心是否有效、研究中心名称、研究中心代号、研究中心网站等内容。表4-9为授权用户具体操作权限表,同一个账号可能有多个临床研究项目权限,通过IsDefault字段设置每次进入的默认项目,该表记录了授权用户在研究项目中具有的权限,包括项目角色ID、研究中心ID和系统用户ID等内容。
表4-4 项目组信息表ProjectGroup详细描述
序号 |
字段名 |
字段类型 |
字段长度 |
是否为关键字 |
备注 |
1 |
Id |
int |
- |
是 |
|
2 |
CreationTime |
datetime2 |
7 |
否 |
|
3 |
CreatorUserId |
bigint |
- |
否 |
是否有效 |
4 |
LastModificationTime |
datetime2 |
7 |
否 |
|
5 |
LastModifierUserId |
bigint |
- |
否 |
|
6 |
ProjectGroupCode |
nvarchar |
50 |
否 |
项目组编号 |
7 |
ProjectGroupName |
nvarchar |
50 |
否 |
项目组名称 |
表4-5 项目信息表Project详细描述
序号 |
字段名 |
字段类型 |
字段长度 |
是否为关键字 |
备注 |
1 |
Id |
int |
- |
是 |
|
2 |
CreationTime |
datetime2 |
7 |
否 |
|
3 |
CreatorUserId |
bigint |
- |
否 |
|
4 |
LastModificationTime |
datetime2 |
7 |
否 |
|
5 |
LastModifierUserId |
bigint |
- |
否 |
|
6 |
IsActived |
bit |
- |
否 |
是否有效 |
7 |
ProjectCN |
nvarchar |
50 |
否 |
工程名称 |
8 |
ProjectCode |
nvarchar |
50 |
否 |
项目编号 |
9 |
ProjectDescription |
nvarchar |
max |
否 |
项目概况描述 |
10 |
ProjectName |
nvarchar |
50 |
否 |
项目名称 |
11 |
ProjectTitle |
nvarchar |
50 |
否 |
显示在每个操作页面的项目名称 |
12 |
IsMainProject |
bit |
- |
否 |
是否主库 |
13 |
ProjectGroupId |
int |
- |
否 |
所属项目组 |
表4-6 项目特殊配置表ProjectSpecialSet详细描述
序号 |
字段名 |
字段类型 |
字段长度 |
是否为关键字 |
备注 |
1 |
Id |
int |
- |
是 |
|
2 |
EntryRandomDateDisplay |
bit |
- |
否 |
进入随机化日期是否显示 |
3 |
GroupResultDisplay |
bit |
- |
否 |
分组结果是否显示 |
4 |
IsCarduacSpeSet |
bit |
- |
否 |
|
5 |
IsShowOverView |
bit |
- |
否 |
是否显示全息视图 |
6 |
IsShowSensitive |
bit |
- |
否 |
是否脱敏 |
7 |
IsUserFormFilter |
bit |
- |
否 |
工程名称 |
8 |
ProjectId |
int |
- |
否 |
所属临床项目ID |
9 |
ReUserNumerDisplay |
bit |
- |
否 |
受试者识别号是否显示 |
10 |
ReUserNumerValid |
bit |
- |
否 |
受试者识别号是否必填 |
11 |
ReUserRandomDisplay |
bit |
- |
否 |
受试者随机号是否显示 |
12 |
ReUserRandomValid |
bit |
- |
否 |
受试者随机号是否必填 |
13 |
SignDateDisplay |
bit |
- |
否 |
签署知情同意书日期是否展示 |
14 |
SpellCodeDisplay |
bit |
- |
否 |
姓名首拼码是否展示 |
15 |
UserRandomNumer |
bit |
- |
否 |
是否组合随机号 |
表4-7 授权机构临床研究权限表OrganizationProject详细描述
序号 |
字段名 |
字段类型 |
字段长度 |
是否为关键字 |
备注 |
1 |
Id |
int |
- |
是 |
|
2 |
CreationTime |
datetime2 |
7 |
否 |
|
3 |
CreatorUserId |
bigint |
- |
否 |
|
4 |
LastModificationTime |
datetime2 |
7 |
否 |
|
5 |
LastModifierUserId |
bigint |
- |
否 |
|
6 |
OrganizationId |
int |
- |
否 |
机构Id |
7 |
ProjectId |
int |
- |
否 |
项目Id |
表4-8 研究中心信息表ReSearchOrg详细描述
序号 |
字段名 |
字段类型 |
字段长度 |
是否为关键字 |
备注 |
1 |
Id |
int |
- |
是 |
|
2 |
Address |
nvarchar |
50 |
否 |
|
3 |
CreationTime |
datetime2 |
7 |
否 |
|
4 |
CreatorUserId |
bigint |
- |
否 |
|
5 |
IsEnabled |
bit |
- |
否 |
是否有效 |
6 |
LastModificationTime |
datetime2 |
7 |
否 |
|
7 |
LastModifierUserId |
bigint |
- |
否 |
|
8 |
Master |
nvarchar |
50 |
否 |
字母标识 |
9 |
ProjectId |
int |
- |
否 |
所属项目ID |
10 |
ReSearchOrgCode |
nvarchar |
50 |
否 |
编号 |
11 |
ReSearchOrgName |
nvarchar |
50 |
否 |
名称 |
12 |
Telephone |
nvarchar |
50 |
否 |
联系电话 |
13 |
WebSite |
nvarchar |
50 |
否 |
网站 |
14 |
Logo |
bit |
- |
否 |
图标 |
表4-9 授权用户具体操作权限表CustomerProject详细描述
序号 |
字段名 |
字段类型 |
字段长度 |
是否为关键字 |
备注 |
1 |
Id |
int |
- |
是 |
|
2 |
ProjectRoleId |
int |
- |
否 |
角色ID |
3 |
CreationTime |
datetime2 |
7 |
否 |
|
4 |
CreatorUserId |
int |
- |
否 |
|
5 |
CustomerId |
int |
- |
否 |
系统用户ID |
6 |
LastModificationTime |
datetime2 |
7 |
否 |
是否有效 |
7 |
LastModifierUserId |
bigint |
- |
否 |
|
8 |
ReSearchOrgId |
int |
- |
否 |
研究中心ID |
9 |
IsDefault |
bit |
- |
否 |
是否默认项目 |
4.5.3 菜单操作权限相关表
如表4-10至4-12为菜单操作相关的数据库表。其中表4-10表示菜单信息表,该表记录了菜单编号、是否有效、菜单名称、排序号、父节点ID、URL地址等内容;表4-11表示项目角色表,该表记录了项目角色ID、角色编号、角色名称等内容;表4-12表示角色菜单权限表,该表记录了菜单ID、项目角色ID等内容。
表4-10 菜单信息表Menu详细描述
序号 |
字段名 |
字段类型 |
字段长度 |
是否为关键字 |
备注 |
1 |
Id |
int |
- |
是 |
|
2 |
Code |
nvarchar |
max |
否 |
编号 |
3 |
CreationTime |
datetime2 |
7 |
否 |
|
4 |
CreatorUserId |
bigint |
- |
否 |
|
5 |
IsActived |
bit |
- |
否 |
是否有效 |
6 |
LastModificationTime |
datetime2 |
7 |
否 |
|
7 |
LastModifierUserId |
bigint |
- |
否 |
|
8 |
Name |
nvarchar |
max |
否 |
名称 |
9 |
OrderIndex |
int |
- |
否 |
排序号 |
10 |
ParentId |
int |
- |
否 |
父节点ID(多层目录结构) |
11 |
Type |
nvarchar |
max |
否 |
类型(系统操作菜单system、项目操作菜单project) |
12 |
Url |
nvarchar |
max |
否 |
地址 |
13 |
Icon |
nvarchar |
max |
否 |
图标 |
14 |
Controller |
nvarchar |
max |
否 |
所属代码控制器 |
表4-11 项目角色表ProjectRole详细描述
序号 |
字段名 |
字段类型 |
字段长度 |
是否为关键字 |
备注 |
1 |
Id |
int |
- |
是 |
|
2 |
CreationTime |
datetime2 |
7 |
否 |
|
3 |
CreatorUserId |
bigint |
- |
否 |
|
4 |
LastModificationTime |
datetime2 |
7 |
否 |
|
5 |
LastModifierUserId |
bigint |
- |
否 |
|
6 |
RoleCode |
nvarchar |
max |
否 |
角色编号 |
7 |
RoleName |
nvarchar |
max |
否 |
名称 |
表4-12角色菜单权限表CustomerRoleMenu详细描述
序号 |
字段名 |
字段类型 |
字段长度 |
是否为关键字 |
备注 |
1 |
Id |
int |
- |
是 |
|
2 |
ProjectRoleId |
int |
- |
否 |
角色ID |
3 |
CreationTime |
datetime2 |
7 |
否 |
|
4 |
CreatorUserId |
bigint |
- |
否 |
|
5 |
LastModificationTime |
datetime2 |
7 |
否 |
|
6 |
LastModifierUserId |
bigint |
- |
否 |
|
7 |
MenuId |
int |
- |
否 |
菜单ID |
4.5.4 表单部件配置相关表
如表4-13至4-21为表单部件配置相关的数据库表。其中表4-13表示目录信息表,用于展示的录入结构的目录节点,该表记录了目录名称、父目录ID、是否自定义目录、是否展示目录名称等内容;表4-14表示部件分类表,主要是方便bootstrap设计时,快速找到部件,对所有部件进行分类管理,该表记录了创建时间、创建者ID、部件类别名称、是否有效、所属项目ID等内容;表4-15表示部件类型表,该表记录了类型名称、创建时间、识别名称等内容;表4-16表示部件信息表,该表记录了部件的详细内容,包括部件分类ID、部件编号、部件名称、识别代号等内容;表4-17表示部件详细信息表,该表记录了编号表示、名称、简称、部件ID、排序等内容;表4-18表示组合部件表,该表记录了ID、排序、部件分组ID、组内的部件ID等内容;表4-19表示部件扩展信息表,该表记录了是否验证、是否选择时追加文本框、追加文本框的内容、选择追加选项、是否必答、验证提示信息、日期空间展示模式等内容;表4-20表示控件表格表,该表记录了部件ID、列标题、列控件类型、列填充内容等内容;表4-21表示表单部件表,表单内的部件集合,表单设计保存后生成,该表记录了菜单ID、最后修改时间、排序等内容。
表4-13 目录信息表FormCategory详细描述
序号 |
字段名 |
字段类型 |
字段长度 |
是否为关键字 |
备注 |
1 |
Id |
int |
- |
是 |
|
2 |
CreationTime |
datetime2 |
7 |
否 |
|
3 |
CreatorUserId |
bigint |
- |
否 |
|
4 |
FormCategoryCode |
nvarchar |
50 |
否 |
编号 |
5 |
FormCategoryName |
nvarchar |
50 |
否 |
目录名称 |
6 |
FormCategoryParentId |
int |
- |
否 |
父目录ID |
7 |
IsActived |
bit |
- |
否 |
是否有效 |
8 |
IsCustom |
bit |
- |
否 |
是否自定义目录(可以使用+添加自定义目录及表单,自定义目录自动添加的表单为Form表中打上同样Custon标签的表单) |
9 |
IsProjectStage |
bit |
- |
否 |
父节点ID(多层目录结构) |
10 |
LastModificationTime |
datetime2 |
7 |
否 |
|
11 |
LastModifierUserId |
bigint |
- |
否 |
|
12 |
OrderIndex |
int |
- |
否 |
排序 |
13 |
Ower |
int |
- |
否 |
|
14 |
ProjectId |
int |
- |
否 |
项目ID |
15 |
UserId |
int |
- |
否 |
自定义目录所属案例ID |
16 |
IsRoot |
bit |
- |
否 |
是否展示目录名称(有些项目无目录节点,表单均为一级,即新版网站上维护的表单展示) |
表4-14 部件分类表WidgetCategory详细描述
序号 |
字段名 |
字段类型 |
字段长度 |
是否为关键字 |
备注 |
1 |
Id |
int |
- |
是 |
|
2 |
CreationTime |
datetime2 |
7 |
否 |
|
3 |
CreatorUserId |
bigint |
- |
否 |
|
4 |
WidgetCategoryName |
nvarchar |
50 |
否 |
名称 |
5 |
LastModificationTime |
datetime2 |
7 |
否 |
|
6 |
LastModifierUserId |
bigint |
- |
否 |
|
7 |
IsActived |
bit |
- |
否 |
是否有效 |
8 |
ProjectId |
int |
- |
否 |
所属项目 |
表4-15 部件类型表ElementType详细描述
序号 |
字段名 |
字段类型 |
字段长度 |
是否为关键字 |
备注 |
1 |
Id |
int |
- |
是 |
|
2 |
CategoryName |
nvarchar |
50 |
否 |
类型名称 |
3 |
CreationTime |
datetime2 |
7 |
否 |
|
4 |
CreatorUserId |
bigint |
- |
否 |
|
5 |
LastModificationTime |
datetime2 |
7 |
否 |
|
6 |
LastModifierUserId |
bigint |
- |
否 |
|
7 |
SystemName |
nvarchar |
50 |
否 |
标识名称 |
表4-16 部件信息表Widget详细描述
序号 |
字段名 |
字段类型 |
字段长度 |
是否为关键字 |
备注 |
1 |
Id |
int |
- |
是 |
|
2 |
CreationTime |
datetime2 |
7 |
否 |
|
3 |
CreatorUserId |
bigint |
- |
否 |
|
4 |
ElementTypeId |
int |
- |
否 |
部件类型ID |
5 |
IsActived |
bit |
- |
否 |
是否有效 |
6 |
LastModificationTime |
datetime2 |
7 |
否 |
|
7 |
LastModifierUserId |
bigint |
- |
否 |
|
8 |
OrderIndex |
int |
- |
否 |
标识代号 |
9 |
Tip |
nvarchar |
max |
否 |
提示信息,即表单展示时鼠标移到问号时显示的内容 |
10 |
WidgetCategoryId |
int |
- |
否 |
部件分类ID |
11 |
WidgetCode |
nvarchar |
50 |
否 |
编号 |
12 |
WidgetName |
nvarchar |
50 |
否 |
名称 |
13 |
RefGroupId |
int |
- |
否 |
|
14 |
DataRefCategory |
nvarchar |
50 |
否 |
|
表4-17 部件详细信息表Field详细描述
序号 |
字段名 |
字段类型 |
字段长度 |
是否为关键字 |
备注 |
1 |
Id |
int |
- |
是 |
|
2 |
CreationTime |
datetime2 |
7 |
否 |
|
3 |
CreatorUserId |
bigint |
- |
否 |
|
4 |
FiledCode |
nvarchar |
50 |
否 |
编号标识 |
5 |
FiledName |
nvarchar |
50 |
否 |
名称,例如姓名 |
6 |
FiledValue |
nvarchar |
50 |
否 |
简称,例如Name(一般导出显示改字段) |
7 |
LastModificationTime |
datetime2 |
7 |
否 |
|
8 |
LastModifierUserId |
bigint |
- |
否 |
|
9 |
WidgetId |
int |
- |
否 |
部件ID |
10 |
OrderIndex |
int |
- |
否 |
排序 |
表4-18 组合部件表WidgetGroupDetail详细描述
序号 |
字段名 |
字段类型 |
字段长度 |
是否为关键字 |
备注 |
1 |
Id |
int |
- |
是 |
|
2 |
CreationTime |
datetime2 |
7 |
否 |
|
3 |
CreatorUserId |
bigint |
- |
否 |
|
4 |
LastModificationTime |
datetime2 |
7 |
否 |
|
5 |
LastModifierUserId |
bigint |
- |
否 |
|
6 |
OrderIndex |
int |
- |
否 |
排序 |
7 |
WidgetGroupId |
int |
- |
否 |
部件ID |
8 |
WidgetId |
int |
- |
否 |
组合内的部件ID |
表4-19 部件扩展信息表WidgetExtend详细描述
序号 |
字段名 |
字段类型 |
字段长度 |
是否为关键字 |
备注 |
1 |
Id |
int |
- |
是 |
|
2 |
IsRequired |
bit |
- |
否 |
是否验证 |
3 |
IsRadioButton |
bit |
- |
否 |
是否选择时追加文本框 |
4 |
OtherChoiceTitle |
nvarchar |
50 |
否 |
追加文本框的内容,例如其他请详细说明 |
5 |
AnswerChoiceMsg |
nvarchar |
50 |
否 |
选择追加选项,没有填写文本框时提示内容 |
6 |
DisplayMode |
int |
- |
否 |
是否必答 |
7 |
RequireAnswerMsg |
nvarchar |
50 |
否 |
验证提示信息 |
8 |
DateTimeMode |
int |
- |
否 |
日期空间展示模式yyyyMMDD HHmmss 还是yyyyMMDD |
9 |
WidgetId |
int |
- |
否 |
部件ID |
10 |
IsNumber |
bit |
- |
否 |
是否数值 |
11 |
SelfDefRows |
int |
- |
否 |
表格自定义行数 |
12 |
RefTreeDataSourceId |
int |
- |
否 |
树控件显示的内容 |
表4-20 控件表格表TableColDef详细描述
序号 |
字段名 |
字段类型 |
字段长度 |
是否为关键字 |
备注 |
1 |
Id |
int |
- |
是 |
|
2 |
WidgetId |
int |
- |
否 |
|
3 |
ColName |
nvarchar |
50 |
否 |
列标题 |
4 |
ColType |
int |
- |
否 |
列控件类型 |
5 |
Val |
nvarchar |
max |
否 |
列填充内容 |
表4-21 表单部件FormWidget详细描述
序号 |
字段名 |
字段类型 |
字段长度 |
是否为关键字 |
备注 |
1 |
Id |
int |
- |
是 |
|
2 |
CreationTime |
datetime2 |
7 |
否 |
|
3 |
CreatorUserId |
bigint |
- |
否 |
|
4 |
FormId |
int |
- |
否 |
表单ID |
5 |
LastModificationTime |
datetime2 |
7 |
否 |
|
6 |
LastModifierUserId |
bigint |
- |
否 |
|
7 |
OrderNum |
int |
- |
否 |
排序,设计页面从上往下,导出数据时根据排序导出 |
4.5.5表单规则相关表
如表4-22至4-23为表单规则相关的数据库表。其中表4-22表示表单规则表,该表记录了规则名称、规则触发ID、规则类型、规则表达式、检查类型、危险项等内容;表4-23表示规则详细信息表,该表记录了js控件名、js变量名、控件ID、规则ID、跨表单取值的FormId等内容。
表4-22 表单规则表FormRule详细描述
序号 |
字段名 |
字段类型 |
字段长度 |
是否为关键字 |
备注 |
1 |
Id |
int |
- |
是 |
|
2 |
TargetItemName |
nvarchar |
50 |
否 |
规则名称 |
3 |
TargetItemId |
nvarchar |
50 |
否 |
规则触发ID(表单设计拖拽后部件生成的ID) |
4 |
RuleType |
int |
- |
否 |
规则类型:逻辑验证,计算验证 |
5 |
IsNull |
bit |
- |
否 |
|
6 |
Expression |
nvarchar |
50 |
否 |
表达式 |
7 |
FormId |
int |
- |
否 |
|
8 |
Tip |
int |
- |
否 |
提示信息 |
9 |
OrderIndex |
int |
- |
否 |
排序 |
10 |
RuleFlag |
int |
- |
否 |
检查类型:1空项验证或有效性;2日期比较大小;3数值比较大小;4计算;5显示隐藏类型 |
11 |
ChallengeTip |
nvarchar |
50 |
否 |
危险项,例如红细胞规则范围为20-30,部分术前术后人群可能出现脱离该范围,但是系统仍可提交,只是要产生一条质疑记录,人工再次验证,规则为10-50,不在大范围内不通过验证,20-30则正常提交,符合大范围但不属于20-30则自动产生一条质疑,但可以提交数据 |
表4-23 规则详细信息表RuleExpressionParams详细描述
序号 |
字段名 |
字段类型 |
字段长度 |
是否为关键字 |
备注 |
1 |
Id |
int |
- |
是 |
|
2 |
PItemName |
nvarchar |
50 |
否 |
名称 |
3 |
PName |
nvarchar |
50 |
否 |
js变量名 |
4 |
PItemId |
nvarchar |
50 |
否 |
控件ID,设计拖拽后生成 |
5 |
FormRuleId |
int |
- |
否 |
规则ID |
6 |
RefFormId |
int |
- |
否 |
跨表单取值的FormId |
4.5.6 案例数据相关表
如表4-24至4-27为案例数据相关的数据库表。其中表4-24表示案例信息表,新建案例时填写的数据内容,一般填写后不可更改,该表记录了操作用户ID、身份证号、分组结果、姓名、项目ID、手机联系方式等内容;表4-25表示案例表单状态表,该表记录了案例的每个表单的操作状态,包括案例ID、表单ID、案例状态、新建用户的操作用户名、表单完成率等内容;表4-26表示案例表单的填写值表,该表记录了案例的录入内容,包括部件ID、案例ID、表单ID、对应案例表单状态ID等内容;表4-27表示表单状态不适用时产生数据表,该表用于系统初次判断表单内容不合法但后续改正判断并需要重新填写表单的情况,包括案例ID、表单ID、原因、状态等内容。
表4-24 案例信息表ReSearchUser详细描述
序号 |
字段名 |
字段类型 |
字段长度 |
是否为关键字 |
备注 |
1 |
Id |
int |
- |
是 |
|
2 |
Age |
int |
- |
否 |
|
3 |
ComeFrom |
nvarchar |
50 |
否 |
|
4 |
CreationTime |
datetime2 |
7 |
否 |
|
5 |
CreatorUserId |
bigint |
- |
否 |
|
6 |
CustomUserName |
nvarchar |
50 |
否 |
新建用户的操作用户名 |
7 |
CustomerId |
int |
- |
否 |
操作用户的ID |
8 |
EntryRandomDate |
datetime2 |
7 |
否 |
进入随机化日期 |
9 |
GroupResult |
int |
- |
否 |
分组结果 |
10 |
IDCardNo |
nvarchar |
50 |
否 |
身份证 |
11 |
IsEnabled |
bit |
- |
否 |
是否有效 |
12 |
JoinDate |
datetime2 |
7 |
否 |
加入时间 |
13 |
LastModificationTime |
datetime2 |
7 |
否 |
|
14 |
LastModifierUserId |
int |
- |
否 |
|
15 |
Name |
nvarchar |
50 |
否 |
姓名 |
16 |
ProjectId |
int |
- |
否 |
项目ID |
17 |
Sex |
int |
- |
否 |
性别 |
18 |
SignDate |
datetime2 |
7 |
否 |
签署知情同意书时间 |
19 |
SpellCode |
nvarchar |
50 |
否 |
首拼码 |
20 |
Telephone |
nvarchar |
50 |
否 |
手机联系方式 |
21 |
UserNumer |
nvarchar |
50 |
否 |
识别号 |
22 |
UserRandomNumer |
nvarchar |
50 |
否 |
随机号 |
23 |
UserType |
int |
- |
否 |
|
表4-25 案例表单状态表ReSearchUser详细描述
序号 |
字段名 |
字段类型 |
字段长度 |
是否为关键字 |
备注 |
1 |
Id |
int |
- |
是 |
|
2 |
ReSearchUserId |
int |
- |
否 |
案例ID |
3 |
FormId |
int |
- |
否 |
表单ID |
4 |
CreateAt |
datetime2 |
7 |
否 |
|
5 |
Flag |
int |
- |
否 |
状态:1保存草稿;2提交;2不适用 |
6 |
Creator |
nvarchar |
50 |
否 |
新建用户的操作用户名 |
7 |
LastUpdater |
nvarchar |
50 |
否 |
操作用户的ID |
8 |
LastUpdateTime |
datetime2 |
7 |
否 |
进入随机化日期 |
9 |
Percentage |
float |
- |
否 |
当前表单的完成率,即已填写的/总部件数 |
表4-26 案例表单的填写值FormResults详细描述
序号 |
字段名 |
字段类型 |
字段长度 |
是否为关键字 |
备注 |
1 |
Id |
int |
- |
是 |
|
2 |
WidgetId |
int |
- |
否 |
部件ID |
3 |
Value |
nvarchar |
500 |
否 |
值 |
4 |
ObjectId |
nvarchar |
50 |
否 |
部件ID,设计拖拽时产生的ID |
5 |
ReSearchUserId |
int |
- |
否 |
案例ID |
6 |
FormId |
int |
- |
否 |
表单ID |
7 |
RefMainId |
nvarchar |
50 |
否 |
|
8 |
ReSearchUserResultId |
int |
- |
否 |
对应案例表单状态ID |
表4-27 表单状态不适用时产生数据表UnfitForm详细描述
序号 |
字段名 |
字段类型 |
字段长度 |
是否为关键字 |
备注 |
1 |
Id |
int |
- |
是 |
|
2 |
UserId |
int |
- |
否 |
案例ID |
3 |
FormId |
int |
- |
否 |
表单ID |
4 |
Reason |
nvarchar |
50 |
否 |
原因 |
5 |
UnfitStatus |
bit |
- |
否 |
状态 |
6 |
InputTime |
datetime2 |
7 |
否 |
|
7 |
InputTime |
nvarchar |
50 |
否 |
|
4.5.7 质疑相关表
如表4-28至4-30为质疑相关的数据库表。其中表4-28表示案例目录质疑状态表,该表记录了案例ID、目录ID、质疑类型、审核状态等内容;表4-29表示案例详细表单质疑状态,该表记录了案例ID、表单ID、逻辑质疑状态、人工质疑状态、SDV质疑状态、是否冻结等内容;表4-30表示质疑详细信息表,该表记录了案例表单质疑表ID、部件ID、具体部件内容ID、表格时产生的ID、自动产生的质疑描述、修改后的值、人工产生质疑描述、质疑状态、发送后录入者可查看质疑修改、是否关闭、质疑类型等内容。
表4-28 案例目录质疑状态表ChallengeCategory详细描述
序号 |
字段名 |
字段类型 |
字段长度 |
是否为关键字 |
备注 |
1 |
Id |
int |
- |
是 |
|
2 |
ReSearchUserId |
int |
- |
否 |
案例ID |
3 |
FormCategoryId |
int |
- |
否 |
目录ID一级目录 |
4 |
ChallengeType |
nvarchar |
50 |
否 |
质疑状态质疑类型:0逻辑.1SDV,2人工 |
5 |
ChallengeStatus |
bit |
- |
否 |
审核状态:0未审查;1检查中,2已完成。状态主要用于色块显示,展示时都只显示一级目录质疑状态 |
表4-29 案例详细表单质疑状态ChallengedMain详细描述
序号 |
字段名 |
字段类型 |
字段长度 |
是否为关键字 |
备注 |
1 |
Id |
int |
- |
是 |
|
2 |
ReSearchUserId |
int |
- |
否 |
案例ID |
3 |
FormId |
int |
- |
否 |
表单ID |
4 |
LogicFlag |
int |
- |
否 |
逻辑质疑状态 |
5 |
ManualFlag |
bit |
- |
否 |
人工质疑状态 |
6 |
SDVFlag |
int |
- |
否 |
SDV质疑状态 |
7 |
IsFrozen |
bit |
- |
否 |
是否冻结 |
8 |
InputTime |
datetime2 |
7 |
否 |
|
9 |
InputEditor |
nvarchar |
50 |
否 |
|
10 |
LastUpdateTime |
datetime2 |
7 |
否 |
|
11 |
LastEditor |
nvarchar |
50 |
否 |
|
表4-30 质疑详细信息ChallengedDetail详细描述
序号 |
字段名 |
字段类型 |
字段长度 |
是否为关键字 |
备注 |
1 |
Id |
int |
- |
是 |
|
2 |
ChallengedMainId |
int |
- |
否 |
案例表单质疑表ID |
3 |
WidgetId |
int |
- |
否 |
部件ID |
4 |
ObjectId |
int |
- |
否 |
控件ID,设计拖拽时ID |
5 |
ObjectId |
nvarchar |
50 |
否 |
具体部件内容ID |
6 |
TableColDefId |
int |
- |
否 |
表格时产生的ID |
7 |
Value |
nvarchar |
500 |
否 |
值 |
8 |
CheckDescribe |
nvarchar |
300 |
否 |
自动产生的质疑描述 |
9 |
FeedBackValue |
nvarchar |
500 |
否 |
修改后的值 |
10 |
Describe |
nvarchar |
300 |
否 |
人工产生质疑描述 |
11 |
FeedBackDescribe |
nvarchar |
300 |
否 |
修改时描述 |
12 |
DetailFlag |
int |
- |
否 |
质疑状态 |
13 |
PostStatus |
int |
- |
否 |
发送后录入者可查看质疑修改 |
14 |
CloseStatus |
int |
- |
否 |
是否关闭 |
15 |
Type |
int |
- |
否 |
质疑类型:0逻辑.1SDV,2人工 |
16 |
InputTime |
datetime2 |
7 |
否 |
|
17 |
InputEditor |
nvarchar |
50 |
否 |
|
18 |
LastUpdateTime |
datetime2 |
7 |
否 |
|
19 |
LastEditor |
nvarchar |
50 |
否 |
|
4.5.8其他相关表
如表4-31至4-34为其他相关的数据库表。其中表4-31表示导出说明表,该表记录了导出状态、导出描述、文件路径、项目ID等内容;表4-32表示导出内容表,表示导出时选择具体要导出的部件,该表记录了创建时间、创建人ID、表单ID、导出申请ID等内容;表4-33表示帮助与解答表,主要维护一些系统统一的问答内容,展示在项目首页方便使用者了解常规问题,该表记录了回答内容、是否有效、项目ID、问题描述等内容;表4-34表示使用者的问题及反馈表,使用时产生问题时提问,由管理员反馈用户提出的问题,该表记录了反馈内容、反馈时间、提出的问题、研究中心ID、状态等内容。
表4-31 导出说明ProjectExp详细描述
序号 |
字段名 |
字段类型 |
字段长度 |
是否为关键字 |
备注 |
1 |
Id |
int |
- |
是 |
|
2 |
ApplyFlag |
int |
- |
否 |
导出状态 |
3 |
CreationTime |
datetime2 |
7 |
否 |
|
4 |
CreatorUserId |
bigint |
- |
否 |
|
5 |
CustomUserName |
nvarchar |
50 |
否 |
|
6 |
CustomerId |
int |
- |
否 |
|
7 |
Descript |
nvarchar |
100 |
否 |
导出描述 |
8 |
FilePath |
nvarchar |
max |
否 |
文件路径 |
9 |
LastModificationTime |
datetime2 |
7 |
否 |
|
10 |
LastModifierUserId |
bigint |
- |
否 |
|
11 |
ProjectId |
int |
- |
否 |
项目ID |
表4-32 导出内容ProjectExpForms详细描述
序号 |
字段名 |
字段类型 |
字段长度 |
是否为关键字 |
备注 |
1 |
Id |
int |
- |
是 |
|
2 |
CreationTime |
datetime2 |
7 |
否 |
|
3 |
CreatorUserId |
bigint |
- |
否 |
|
4 |
FormWidgetId |
int |
- |
否 |
表单部件ID |
5 |
LastModificationTime |
datetime2 |
7 |
否 |
|
6 |
LastModifierUserId |
bigint |
- |
否 |
|
7 |
ProjectExpId |
int |
- |
否 |
导出申请ID |
8 |
Status |
bit |
- |
否 |
|
表4-33 帮助与解答HelpQuestion详细描述
序号 |
字段名 |
字段类型 |
字段长度 |
是否为关键字 |
备注 |
1 |
Id |
int |
- |
是 |
|
2 |
Answer |
nvarchar |
max |
否 |
回答内容 |
3 |
CreationTime |
datetime2 |
7 |
否 |
|
4 |
CreatorUserId |
bigint |
- |
否 |
|
5 |
IsActived |
int |
- |
否 |
是否有效 |
6 |
LastModificationTime |
datetime2 |
7 |
否 |
|
7 |
LastModifierUserId |
bigint |
- |
否 |
|
8 |
OrderIndex |
int |
- |
否 |
排序 |
9 |
ProjectId |
int |
- |
否 |
项目ID |
10 |
Question |
nvarchar |
max |
否 |
问题描述 |
表4-34 使用者的问题及反馈QuestionAnswer详细描述
序号 |
字段名 |
字段类型 |
字段长度 |
是否为关键字 |
备注 |
1 |
Id |
int |
- |
是 |
|
2 |
Answer |
nvarchar |
max |
否 |
反馈内容 |
3 |
AnswerTime |
nvarchar |
max |
否 |
反馈时间 |
4 |
CreationTime |
datetime2 |
7 |
否 |
|
5 |
CreatorUserId |
bigint |
- |
否 |
|
6 |
LastModificationTime |
datetime2 |
7 |
否 |
|
7 |
LastModifierUserId |
bigint |
- |
否 |
|
8 |
Question |
nvarchar |
max |
否 |
问题 |
9 |
ReSearchOrgId |
int |
- |
否 |
研究中心ID |
10 |
Status |
int |
- |
否 |
状态 |
4.6 本章小结
本章重点说明了临床科研数据管理系统的系统设计部分,从设计原则、设计目的和系统架构设计入手整体上阐述系统的设计架构和设计理念。之后利用流程图和时序图对系统的七个子系统的功能结构进行详细说明,并对系统重点流程和E-R图的设计进行详细说明。最后对系统数据表结构设计进行详细阐述。
第五章系统实现与测试
临床科研数据管理系统按照功能和实际业务可以将整体系统分为七个子系统,即:登录管理子系统、研究信息管理子系统、项目管理子系统、质量管理子系统、数据导出子系统、统计分析子系统和系统配置管理子系统。下面分别对这七个子系统进行的实现进行详细说明并进行测试。
5.1 测试环境
如表6-1所示,为系统的测试硬件环境和软件环境。
表6-1 系统的测试环境
硬件配置 |
硬件名称 |
型号/备注 |
Web服务器 |
CPU |
Intel(R) Core(TM) i7-4790 CPU @ 3.60GHz |
内存 |
8 GB |
|
硬盘 |
500 GB |
|
操作系统 |
Windows 7 |
|
数据库服务器 |
CPU |
Intel(R) Core(TM) i7-4790 CPU @ 3.60GHz |
内存 |
8 GB |
|
硬盘 |
500 GB |
|
操作系统 |
Windows 7 |
|
服务器程序 |
网络运行环境 |
IIS |
数据库软件 |
数据库系统 |
SQL Server 2008 |
5.2 系统登陆和注册子系统
临床科研数据管理系统需要登录后才能进行后续操作,如果第一次登录需要进行注册。如图5.1所示为系统登录界面截图,如图5.2所示为系统账户注册界面截图。
图5.1 系统登陆主界面 图5.2 系统注册主界面
5.3 研究信息管理子系统
如图5.3至图5.6为研究信息管理子系统的运行截图。如图5.3所示,为项目概况主页的运行截图。如图5.4所示,为研究数据研究数据查看与编辑页面的运行截图,其中图5.(a)为研究数据管理的主页面,在次页面输入病人姓名后查询该病人的相关数据,图5.(b)至图5.(j)为该病人所有相关的数据,分别为:(1)基本信息;(2)基线评估;(3)肿瘤学评估;(4)手术信息;(5)术后恢复;(6)系统治疗;(7)放射治疗;(8)介入治疗;(9)随访信息。
图5.3 项目概况主界面
图5.4(a) 研究数据管理界面 图5.4(b) 病人基本信息查看
图5.4(c) 病人基线评估 图5.4(d) 病人肿瘤学评估
图5.4(e) 病人手术信息评估 图5.4(f) 病人术后恢复
图5.4(g) 系统治疗 图5.4(h) 病人放射治疗
图5.4(i) 病人介入治疗 图5.4(j) 病人随访信息
图5.4 研究数据查看与编辑页面
如图5.5所示,为病人数据录入进度的运行截图。如图5.6所示,为项目相关问题反馈的运行截图。
图5.5 数据录入进度 图5.6 项目问题反馈
5.4 项目管理子系统
如图5.7所示,为研究中心管理子系统的运行主界面截图。点击“新建研究中心”和“编辑”按钮可以进入新建研究中心页面或编辑现有研究中心,运行截图如图5.8和图5.9所示。
图5.7 研究中心管理主界面
图5.8 研究中心信息编辑界面 图5.9 新建研究中心主界面
如图*所示,为研究中心邀请用户参与系统应用或管理的运行截图。
图5.10 研究中心信息用户邀请界面
如图5.11所示,为项目概况编辑主界面的运行截图,通过编辑项目概况介绍信息,将会改变研究信息管理主界面项目概况简介的内容。
图5.11 项目概况编辑主界面
如图5.12所示,为字段提示查看主界面的运行截图。如图5.13所示,为项目问题反馈主界面的运行截图。
图5.12 字段提示查看主界面 图5.13 项目问题反馈主界面
5.5 质量管理子系统
如图5.14所示,为质量管理子系统的运行截图。质量管理子系统最先进行录入数据的逻辑审查,即系统自动对录入数据的逻辑正确性进行审查,运行截图如图5.15所示。
图5.14 逻辑审查界面
如果逻辑审查不通过,则进行SDV审查,运行截图如图*所示。
图5.15 SDV审查界面
如果系统仍然判定录入的数据的正确性存在问题,则需要进行人工审查,运行截图如图5.16所示,点击“画笔”按钮可以进入人工审查操作界面,人工审查的具体界面的运行截图如图5.17所示。
图5.16 人工审查界面
图5.17 人工审查操作界面
可以通过质疑导出功能将网络系统的质疑导入到统一界面进行详细查看,具体运行截图如图5.18所示。
图5.18 质疑导出界面
5.6 数据导出子系统
如图5.19至图5.21所示,为研究数据导子系统的运行截图。如图5.19所示,为研究数据导出的页面的运行截图。
图5.19 研究数据导出主界面
点击“新增导出”按钮新建导出字段,运行截图如图5.20所示。
图5.20 新增研究数据的导出
如图5.21所示,为研究数据导出字段查看的运行截图,在导出数据前可以查看设置的导出字段。
图5.21 研究数据导出字段查看
5.7 统计与分析子系统
图5. 项目概况编辑主界面
5.8 系统管理子系统
如图*所示,为项目组管理子系统的运行主界面截图。点击“新建项目组”可以进入新建项目组的页面的,其运行截图如图5.所示。点击“编辑”按钮进入项目组信息的编辑页面,其运行截图如图5.所示。
图5. 项目组主界面
图5. 新建项目组 图5. 编辑项目组信息
如图5.所示,为项目信息查看页面的运行截图。如图5.所示,为数据配置主界面页面的运行截图。
图5. 项目组信息查看 图5. 数据配置主界面
点击“编辑”按钮进入部件属性编辑的编辑页面,其运行截图如图5.所示。
图5. 部件属性编辑界面
如图5.所示,为表单配置主界面页面的运行截图。点击“新建目录”可以进入新建表单目录的页面的,其运行截图如图5.所示。点击“编辑”按钮进入表单目录的编辑页面,其运行截图如图5.所示。
图5. 表单配置主界面
图5. 表单目录编辑界面 图5. 新建表单目录界面
如图5.所示,为数据分类主页面的运行截图。点击“新建”按钮可以进入新建数据分类页面,其运行截图如图5.所示。点击“编辑”按钮可以进入数据分类编辑页面,其运行截图如图5.所示。
图5. 数据分类主界面
图5. 新建数据分类主界面 图5. 编辑数据分类界面
如图5.所示,为帮助与解答主页面的运行截图。点击“新建”按钮可以进入新建编辑帮助与解答页面,其运行截图如图5.所示。点击“编辑”按钮可以进入编辑帮助与解答编辑页面,其运行截图如图5.所示。
图5. 帮助与解答主界面
图5. 新建帮助与解答界面图 5. 编辑帮助与解答界面
如图5.所示,为机构信息查看主页面的运行截图。点击“编辑”按钮可以进入机构信息查看编辑页面,其运行截图如图5.所示。点击“查看用户”按钮可以进入机构用户查看页面,其运行截图如图5.所示。
图5. 机构信息查看主界面
图5. 机构信息编辑界面 图5. 机构信息用户查看界面
如图5.所示,为项目授权界面页面的运行截图。
图5. 项目授权界面
如图5.所示,为用户管理主页面的运行截图。点击“新建用户”按钮可以进入用户信息新建页面,其运行截图如图5.所示。点击“编辑”按钮可以进入用户信息编辑页面,其运行截图如图5.所示。
图5. 用户管理主界面
图5. 用户信息新建界面 图5. 用户信息编辑界面
第六章 总结与展望
本文重点研究了临床科研数据管理系统的设计与实现,通过对异构医疗数据的研究开发出了适合临床医疗领域的数据管理系统,为临床医疗领域科研工作的进步起到了推动作用。
6.1 总结
临床数据由于存在数据结构复杂、数据量大等问题,使得临床科研很难有足够的数据作为支持,尤其是很多临床科研数据存在于单个医院,甚至是单个部门,这种数据孤岛现象使得临床科研工作的开展备受阻力,数据瓶颈问题已经成为阻碍临床科研进步的重点难题,亟待解决。
针对当前数据管理系统大多数是为单一部门的使用而设计、实现的,缺少全局性的考虑,难以应用于复杂部门关系的领域,如果应用于医疗系统,则将会有很多工作需要人工去弥补完成,造成人力资源极大的浪费的问题,以及当前数据管理系统缺少监督机制,数据录入进度难以掌控,同时也缺少问题反馈机制,还需要人与人之间私下沟通解决,效率低下,也缺少成熟的平台去解决问题,目前的绝大多数数据管理系统难以应用于实际业务,其应用普及度、可扩展性、安全性等因素都需要进一步提高,且关于临床医疗数据管理的系统更是少见的问题,本文开发一套可以应用于实际工作的临床科研数据管理系统用于管理临床领域医疗数据,以提高临床科研效率,具有如下意义。
1、针对现代临床科研领域对于海量数据采集、存储、管理、分享等方面的需求,提出了一套用于管理海量临床医疗数据的管理系统,优化了数据采集流程、提高了数据管理效率、严格了数据完整性监测要求,最终提高了数据管理的效率和服务质量。
2、采用现代的软件工程技术和软件工程理念,构建了系统整体架构、各子系统功能模块和数据库表结构的详细设计,基于ASP技术实现了该系统的各项功能,并基于Windows平台、IIS服务器、SQL Server 2008数据库系统等环境对系统进行运行测试,测试结果表明该系统实现了高效数据采集、数据存储、数据管理和数据分享医疗领域的科研数据。
6.2 展望
临床医疗数据的数据类型涉及面广、数据中存在非结构化的数据、数据量巨大、数据管理复杂度和难度很大,对数据管理系统的要求很高。系统的设计和实现过程中,在各角色的需求、系统架构设计、系统流程梳理、平台搭建等方面做了很多工作,但还存在以下几方面需要在后续的工作中进一步完善。
1、进一步探索数据存储优化模型。随着系统应用的普及,所存储的数据量会呈现指数级速度增长,海量数据的存储、访问、查询会对系统性能、结构等方面造成巨大压力和考验。后续要进一步优化系统的数据存储、访问、查询模型,运用新技术提高系统的稳定性和性能。
2、利用数据挖掘实现系统数据的自动分析和系统各项参数指标的自适应调整。下一步将利用现代火热的机器学习技术及其深度学习对系统中的医疗数据进行自动分析,利用分析结果对系统结构、参数的优化提出参考结果。
主要参考文献
[1] 张振, 周毅, 杜守洪,等. 医疗大数据及其面临的机遇与挑战[J]. 医学信息学杂志, 2014, 35(6):2-8.
[2] 汪鹏, 吴昊, 罗阳,等. 医疗大数据应用需求分析与平台建设构想[J]. 中国医院管理, 2015, 35(6):40-42.
[3] 罗旭, 刘友江. 医疗大数据研究现状及其临床应用[J]. 医学信息学杂志, 2015, 36(5):10-14.
[4] 代涛. 健康医疗大数据发展应用的思考[J]. 医学信息学杂志, 2016, 37(2):1-8.
[5] 彭传薇, 刘琛玺, 李小华. 浅谈医疗数据质量重要性及其影响[J]. 解放军医院管理杂志, 2005, 12(5):467-468.
[6] 彭传薇, 李小华, 刘琛玺. 医院医疗数据质量现状和影响因素分析[J]. 中国医院管理, 2005, 25(9):37-39.
[7] 唐凯, 管世俊, 黄钊,等. 区域医疗信息化中的医疗数据交换平台[J]. 医疗卫生装备, 2010, 31(5):35-37.
[8] 马灿. 国内外医疗大数据资源共享比较研究[J]. 情报资料工作, 2016, 37(3):63-67.
[9] 蔡佳慧, 张涛, 宗文红. 医疗大数据面临的挑战及思考[J]. 中国卫生信息管理杂志, 2013(4):292-295.
[10] 周光华, 辛英, 张雅洁,等. 医疗卫生领域大数据应用探讨[J]. 中国卫生信息管理杂志, 2013(4):296-300.
[11] 林青, 黄玉蕾. 医疗卫生领域大数据共享的应用研究[J]. 信息安全与技术, 2016, 7(4):12-14.
[12] 殷焕炯. 大数据在医疗卫生领域中的应用[J]. 网络安全技术与应用, 2017(5):123-124.
[13] 盛芳菲, 郎宝军, 张韧, et al. 基于Hadoop的智慧医疗数据管理方法:, 2013.
[14] Cohen G , Goldsmith J , Roller P , et al. MEDICAL DATA MANAGEMENT SYSTEM AND PROCESS[J]. 1999.
[15] Fuminori M, Hirofumi H. MEDICAL DATA MANAGEMENT SYSTEM[J]. 2004.
[16] Liu X, Zhao J, Huang J, et al. Research of Quick Developing Model in the Medical Clinical Data Management System[C]// International Conference on Bioinformatics & Biomedical Engineering. 2011.
[17] Probst K . Humaris — An Automated Medical Data Management System[J]. Methods of Information in Medicine, 1967, 06(02):65-69.
[18] 程学旗, 靳小龙, 王元卓,等. 大数据系统和分析技术综述[J]. 软件学报, 2014(9):1889-1908.
[19] 王琳, 商周, 王学伟. 数据采集系统的发展与应用[J]. 电测与仪表, 2004, 41(8):4-8.
[20] 邬伦, 张毅. 分布式多空间数据库系统的集成技术[J]. 地理与地理信息科学, 2002, 18(1):6-10.
[21] 金澈清, 钱卫宁, 周敏奇,等. 数据管理系统评测基准:从传统数据库到新兴大数据[J]. 计算机学报, 2015, 38(1):18-34.
[22] 商琳, 骆斌. 一种基于数据仓库的数据挖掘系统的结构框架[J]. 计算机应用研究, 2000, 17(9):63-65.
[23] 薛医贵. 基于ASP的高校人力资源管理信息系统研究[J]. 电子设计工程, 2016, 24(6):162-164.
[24] 张蕾, 翟大昆. ASP技术考[J]. 云南民族大学学报(自然科学版), 2001, 10(1):295-297.
[25] 武怀生, 李秀明. 基于ASP技术的企业商务网站的设计与实现[J]. 现代电子技术, 2014(18):60-62.
[26] 宿静茹, 濮德敏. 利用ASP技术实现数据库WWW动态查询[J]. 情报学报, 2000, 19(5):532-537.
[27] 彭建, 黄家林. 基于ASP技术的Web网站安全措施分析[J]. 电脑与信息技术, 2002(2):31-33.
[28] 陈玮. 基于ASP技术的林业信息服务平台构建[J]. 东北林业大学学报, 2008, 36(12):84-86.
[29] 尹露禾, 叶震. ASP技术在WEB数据库中的应用[J]. 电脑开发与应用, 2000(2):19-21.
[30] 陆鑫. 利用ASP技术实现WEB数据库的访问[J]. 电子科技大学学报, 2000, 29(1):87-90.
[31] 孙俊, 李正明, 杨继昌. ASP技术与ASP.Net技术的比较[J]. 微型机与应用, 2003, 22(1):6-7.
[32] 赵燕燕. ASP技术在Web数据库开发中的使用[J]. 河南医学高等专科学校学报, 2009, 21(1):93-94.
[33] White M. Microsoft SQL Server 2008 Bible[J]. John Wiley & Sons, 2009.
[34] Fritchey G, Dam S. SQL Server 2008 Query Performance Tuning Distilled[J]. Apress, 2009.
[35] 孙国强, 孟晓阳, 许燕, et al. 基于SQL SERVER 2008在医院信息系统中构建数据仓库[J]. 中国数字医学, 2009, 4(6):70-72.
[36] 郑群, 邸铮. SQL Server数据库安全性研究[J]. 无线互联科技, 2016(7):98-99.
[37] 张运诗, 仲兆准, 钟胜奎, et al. 基于Visual Studio 2010的员工信息数据库设计和实现[J]. 电脑知识与技术, 2013(28):6246-6249.
[38] 石峰. Visual Studio2010应用解折[J]. 经济师, 2011(7).
[39] 秦佳. 基于UML的电子商务系统设计[J]. 电子技术与软件工程, 2017(23):59-59.
[40] 何耀光, 康汶, 詹先信, et al. 基于UML的电子商务在线销售系统分析与设计[J]. 计算机与现代化, 2011(2):171-174.
[41] 孟倩, 周延. UML在数据库建模中的应用[J]. 计算机工程与应用, 2005, 41(16):179-181.
[42] 张秀国, 徐晓红. 基于UML的数据仓库构造方法的研究[J]. 计算机工程与设计, 2002, 23(11):21-23.
[43] 陈荟慧, 王伟静. 基于UML的数据流图可视化编辑工具的设计[J]. 计算机技术与发展, 2012, 22(5):145-149.
[44] 甄凤其. 基于UML的数据库应用系统开发研究[J]. 电脑知识与技术, 2009, 5(7):1779-1781.
以上是关于国内外基于web的好友聊天系统的现状的主要内容,如果未能解决你的问题,请参考以下文章
超赞!这款基于SpringBoot + Dubbo打造的在线IM系统功能丰富(附源码)
Java项目:在线聊天及聊天室系统(java+springboot+freemark+websocket+MySQL)