第2章 设计技术与开发环境
2.1 相关技术介绍
2.1.1 B/S模式分析
C/S模式主要由客户应用程序(Client)、服务器管理程序(Server)和中间件(middleware)三个部件组成。客户应用程序是系统中用户与数据组件交互。服务器程序负责系统资源,如管理信息数据库的有效管理,其主要工作是当多个客户端同时请求同一个服务器上的资源,以优化这些资源的管理。中间件是负责连接客户端应用程序和服务器管理器,一个合作作业完成,以满足用户的查询的管理数据的要求。
B/S模式首先简化了客户端。它无需象C/S模式那样在不同的客户机上安装不同的客户应用程序,而只需安装通用的浏览器软件。这样不但可以节省客户机的硬盘空间与内存,而且使安装过程更加简便、网络结构更加灵活。
再次,它使用户的操作变得更简单。对于C/S模式,客户应用程序有自己特定的规格,使用者需要接受专门培训。而采用B/S模式时,客户端只是一个简单易用的浏览器软件。无论是决策层还是操作层的人员都无需培训,就可以直接使用。B/S模式的这种特性,还使 MIS系统维护的限制因素更少。
最后,B/S特别适用于网上信息发布,使得传统的MIS的功能有所扩展。这是C/S所无法实现的。而这种新增的网上信息发布功能恰是现代用户所需的。这使得用户的电子文件可以取代大部分的纸质文件,从而使用户工作的效率得以提高,简化用户工作的手续,节约了物力和人力。
鉴于B/S比C/S的具有更先进性,B/S逐步的成为了当今流行的一种MIS平台系统。本系统也采用B/S结构开发。
2.1.2 mysql简介
MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于Oracle公司。Mysql是最流行的关系型数据库管理系统,在WEB应用方面MySQL是最好的RDBMS(Relational Database Management System:关系数据库管理系统)应用软件之一。MySQL是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,这样就增加了速度并提高了灵活性。MySQL所使用的SQL语言是用于访问数据库的最常用标准化语言。MySQL软件采用了双授权政策(本词条“授权政策”),它分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择MySQL作为网站数据库。
2.1.3 Spring Boot 简介
SpringBoot是由Pivotal团队在2013年开始研发、2014年4月发布第一个版本的全新开源的轻量级框架。它基于Spring4.0设计,不仅继承了Spring框架原有的优秀特性,而且还通过简化配置来进一步简化了Spring应用的整个搭建和开发过程。另外SpringBoot通过集成大量的框架使得依赖包的版本冲突,以及引用的不稳定性等问题得到了很好的解决。
2.2 开发环境介绍
2.2.1 eclipse简介
eclipse 是一个十分优秀的用于开发J2EE和Java,的 Eclipse 插件集合,eclipse的功能十分强大,支持也非常广泛,特别是对多种不同的开源产品的支持十分不错。eclipse目前支持Java Servlet,AJAX, JSP, JSF, Struts,Spring, Hibernate,EJB3,JDBC数据库链接工具等多项功能。可以说eclipse是几乎囊括了目前所有主流开源产品的专属eclipse开发工具。
eclipse 是一个十分优秀的用于开发Java, J2EE的 Eclipse 插件集合,eclipse的功能非常强大,支持也十分广泛,尤其是对各种开源产品的支持十分不错。eclipse目前支持Java Servlet,AJAX, JSP, JSF, Struts,Spring, Hibernate,EJB3,JDBC数据库链接工具等多项功能。可以说eclipse是几乎囊括了目前所有主流开源产品的专属eclipse开发工具。[1]
2.2.2 Tomcat简介
Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于小量级的应用服务器,广泛应用于中小型系统和并发访问用户不是很多的场合,是JSP程序首选的开发方式和调试方式。对于一个初学者,这可能是因为当一个好的Apache服务器上配置了一台机器,你可以用它来访问HTML页面的请求作出回应。 Apache Tomcat的实际上是服务器的扩展的一部分,但它是独立运行的,所以当你运行tomcat的,它实际上是作为与Apache单独运行的一个单独进程。
诀窍是,当配置正确时,Apache来提供HTML页面,但实际上运行Tomcat JSP页面和Servlet。另外,Tomcat和IIS,Apache和其他Web服务器,具有处理功能的HTML页面,而这是一个Servlet和JSP容器,独立的Tomcat Servlet容器是默认模式。不过,Tomcat是不如来处理静态HTML的Apache服务器的能力。目前Tomcat最新版本为8.0.0-RC1 (alpha) Released。
第4章 系统设计
4.1 系统总体设计
系统不仅要求功能完善,而且还要界面友好,因此,对于一个成功的系统设计,功能模块的设计是关键。由于本系统可执行的是一般性质的学习信息管理工作,本系统具有一般适用性,其所实现的功能满足用户对日常性学习信息的管理。首先,整个系统分成几个小的模块,小的问题,然后,进一步细分模块,添加细节。
管理员功能模块如图4-1所示:
图4-1管理员功能模块图
医院功能模块如图4-2所示:
图4-2医院功能模块图
用户功能模块如图4-3所示:
图4-3用户功能模块图
医生功能模块如图4-4所示:
图4-4医生功能模块图
4.2 系统开发步骤
一般说来,信息管理系统的应用和成立可以分为三个阶段的:开发系统,总体规划和操作系统,可进一步划分为系统开发系统实施,系统设计和系统分析和工作等方面的阶段。每个发展阶段安排在一个严格的线性序列来开发,在每一个阶段所产生的工作指导和依据每个阶段处理文件审查下一阶段的完整的技术文档,相信这个阶段已经完成,之后实现要求进入下一个阶段,而在以后的工作中不能轻易对以前的评估结果有所改变。
上述开发的方法是有便于进行设计开发工作的管理和组织的最大优点,而且在最大程序上减少了开发信息管理系统的复杂性。国内外有很多已经开发好的系统的实际例子都能证明这是一个效果非常不错的开发方法。
4.3 概要设计
在系统需求分析阶段,搞清楚了要开发的这个软件需要“做什么”的问题,形成一个系统目标的逻辑模型来。然后我们所要做的就是要把软件需要“做什么”的这个逻辑模型转换成“怎么做”的一个物理模型,最后再着手实现系统的需求。首先,我们需要描述的是系统的总的体系结构。
4.4 数据库概念结构设计
在每一个应用程序中,数据库的设计是其中非常重要的部分,选择合适的数据库并创建合计的结构式开发程序时首要的问题。数据库将用mysql进行设计和管理。数据库安全性就是保证数据库信息的保密性,完整性,一致性和可用性,防止非法用户越权使用数据库从而窃取,更改或破坏数据库中数据[6],将提供一些安全措施来保证数据库的安全。根据以上章节对系统所做的需求分析和系统设计.
医院ER图
管理员ER图
文章类型ER图
4.5 数据库逻辑结构设计
模式设计的目的是确定物理数据结构。它的主要问题是处理具体的数据库管理系统的结构约束。第三范式形式的实体及关系模型是模式设计过程的输入。我们通常用“范式”定义来对数据冗余的程度进行消除。第一范式(1NF)数据冗余很大程度上,第五范式(5NF)最小的数据冗余水平。但是,范式级别越高,则需要存储相同的数据被分解成多个表,随着范式水平的提高,数据结构的存储结构和问题的域之间的匹配程度也在不断变化的数据需求下降的时候,因此,不太稳定。第三范式是需要提高访问表中增加的水平,因此性能(速度)将减少。从实际的角度来看,选择在大多数情况下,第三范式是比较合适的。该系统的大致轮廓确定以下,一个重要的步骤就是设计一个数据库的内容以及表的设计直接影响了开发的系统的质量。在设计的过程中,考虑了设计数据表范式规则,但更重要的考虑了用户使用的方便性。根据E-R模型,该软件建立了以下逻辑数据结构。
数据库概念模型独立于任何特定的数据库管理系统,因此,需要根据具体使用的数据库管理系统的特点进行转换。本系统的数据结构比较清晰,依据基于B2B平台的医疗病历交互系统的功能要求,主要设计出数据库的表如下:
表4.1 病人病历
字段 类型 空 默认 注释
id (主键) bigint(20) 否 主键
addtime timestamp 否 CURRENT_TIMESTAMP 创建时间
zhanghao varchar(200) 是 NULL 账号
xingming varchar(200) 是 NULL 姓名
yiyuanbianhao varchar(200) 是 NULL 医院编号
xingbie varchar(200) 是 NULL 性别
hunyin varchar(200) 是 NULL 婚姻
nianling varchar(200) 是 NULL 年龄
xianzhudizhi varchar(200) 是 NULL 现住地址
ruyuanriqi varchar(200) 是 NULL 入院日期
zhusu longtext 是 NULL 主诉
xianbingshi longtext 是 NULL 现病史
jiwangshi longtext 是 NULL 既往史
gerenshi longtext 是 NULL 个人史
jiazushi longtext 是 NULL 家族史
tigejiancha longtext 是 NULL 体格检查
binglizhaiyao longtext 是 NULL 病历摘要
chubuzhenduan longtext 是 NULL 初步诊断
yishengzhanghao varchar(200) 是 NULL 医生账号
yishengxingming varchar(200) 是 NULL 医生姓名
表4.2 医生展示评论表
字段 类型 空 默认 注释
id (主键) bigint(20) 否 主键
addtime timestamp 否 CURRENT_TIMESTAMP 创建时间
refid bigint(20) 否 关联表id
userid bigint(20) 否 用户id
nickname varchar(200) 是 NULL 用户名
content longtext 否 评论内容
reply longtext 是 NULL 回复内容
表4.3 医院文章评论表
字段 类型 空 默认 注释
id (主键) bigint(20) 否 主键
addtime timestamp 否 CURRENT_TIMESTAMP 创建时间
refid bigint(20) 否 关联表id
userid bigint(20) 否 用户id
nickname varchar(200) 是 NULL 用户名
content longtext 否 评论内容
reply longtext 是 NULL 回复内容
表4.4 院区展示评论表
字段 类型 空 默认 注释
id (主键) bigint(20) 否 主键
addtime timestamp 否 CURRENT_TIMESTAMP 创建时间
refid bigint(20) 否 关联表id
userid bigint(20) 否 用户id
nickname varchar(200) 是 NULL 用户名
content longtext 否 评论内容
reply longtext 是 NULL 回复内容
表4.5 收藏表
字段 类型 空 默认 注释
id (主键) bigint(20) 否 主键
addtime timestamp 否 CURRENT_TIMESTAMP 创建时间
userid bigint(20) 否 用户id
refid bigint(20) 是 NULL 收藏id
tablename varchar(200) 是 NULL 表名
name varchar(200) 否 收藏名称
picture varchar(200) 否 收藏图片
表4.6 管理员表
字段 类型 空 默认 注释
id (主键) bigint(20) 否 主键
username varchar(100) 否 用户名
password varchar(100) 否 密码
role varchar(100) 是 管理员 角色
addtime timestamp 否 CURRENT_TIMESTAMP 新增时间
表4.7 文章类型
字段 类型 空 默认 注释
id (主键) bigint(20) 否 主键
addtime timestamp 否 CURRENT_TIMESTAMP 创建时间
wenzhangleixing varchar(200) 是 NULL 文章类型
表4.8 医疗安排
字段 类型 空 默认 注释
id (主键) bigint(20) 否 主键
addtime timestamp 否 CURRENT_TIMESTAMP 创建时间
yiyuanbianhao varchar(200) 是 NULL 医院编号
zhanghao varchar(200) 是 NULL 账号
xingming varchar(200) 是 NULL 姓名
ruyuanriqi datetime 是 NULL 入院日期
ruzhukeshi varchar(200) 是 NULL 入住科室
ruzhufanghao varchar(200) 是 NULL 入住房号
yishengzhanghao varchar(200) 是 NULL 医生账号
yishengxingming varchar(200) 是 NULL 医生姓名
yongyaoanpai longtext 是 NULL 用药安排
yongyaojindu varchar(200) 是 NULL 用药进度
jianchaxiangmuanpai longtext 是 NULL 检查项目安排
xiangmujianchajindu varchar(200) 是 NULL 项目检查进度
hulianpai longtext 是 NULL 护理安排
hulijindu varchar(200) 是 NULL 护理进度
表4.9 医生
字段 类型 空 默认 注释
id (主键) bigint(20) 否 主键
addtime timestamp 否 CURRENT_TIMESTAMP 创建时间
yishengzhanghao varchar(200) 否 医生账号
mima varchar(200) 否 密码
yishengxingming varchar(200) 否 医生姓名
xingbie varchar(200) 是 NULL 性别
chushengriqi date 是 NULL 出生日期
shouji varchar(200) 是 NULL 手机
youxiang varchar(200) 是 NULL 邮箱
shenfenzheng varchar(200) 是 NULL 身份证
nianling varchar(200) 是 NULL 年龄
keshi varchar(200) 是 NULL 科室
zhicheng varchar(200) 是 NULL 职称
zhiwu varchar(200) 是 NULL 职务
gerenjianjie longtext 是 NULL 个人简介
zhuanyetezhang varchar(200) 是 NULL 专业特长
yiyuanbianhao varchar(200) 否 医院编号
zhaopian varchar(200) 是 NULL 照片
sfsh varchar(200) 是 否 是否审核
shhf longtext 是 NULL 审核回复
表4.10 医生展示
字段 类型 空 默认 注释
id (主键) bigint(20) 否 主键
addtime timestamp 否 CURRENT_TIMESTAMP 创建时间
yishengzhanghao varchar(200) 是 NULL 医生账号
yishengxingming varchar(200) 是 NULL 医生姓名
xingbie varchar(200) 是 NULL 性别
chushengriqi varchar(200) 是 NULL 出生日期
nianling varchar(200) 是 NULL 年龄
keshi varchar(200) 是 NULL 科室
zhicheng varchar(200) 是 NULL 职称
zhiwu varchar(200) 是 NULL 职务
gerenjianjie longtext 是 NULL 个人简介
zhuanyetezhang varchar(200) 是 NULL 专业特长
yiyuanbianhao varchar(200) 是 NULL 医院编号
zhaopian varchar(200) 是 NULL 照片
thumbsupnum int(11) 是 0 赞
crazilynum int(11) 是 0 踩
表4.11 医院
字段 类型 空 默认 注释
id (主键) bigint(20) 否 主键
addtime timestamp 否 CURRENT_TIMESTAMP 创建时间
yiyuanbianhao varchar(200) 否 医院编号
mima varchar(200) 否 密码
yiyuanmingcheng varchar(200) 否 医院名称
fuzeren varchar(200) 是 NULL 负责人
fuzerenshouji varchar(200) 是 NULL 负责人手机
youxiang varchar(200) 是 NULL 邮箱
fuzerenshenfenzheng varchar(200) 是 NULL 负责人身份证
表4.12 医院公告
字段 类型 空 默认 注释
id (主键) bigint(20) 否 主键
addtime timestamp 否 CURRENT_TIMESTAMP 创建时间
biaoti varchar(200) 是 NULL 标题
neirong varchar(200) 是 NULL 内容
gonggaoshijian datetime 是 NULL 公告时间
gonggaowenjian varchar(200) 是 NULL 公告文件
gonggaotupian varchar(200) 是 NULL 公告图片
yiyuanbianhao varchar(200) 是 NULL 医院编号
表4.13 医院工作人员
字段 类型 空 默认 注释
id (主键) bigint(20) 否 主键
addtime timestamp 否 CURRENT_TIMESTAMP 创建时间
xingming varchar(200) 否 姓名
xingbie varchar(200) 是 NULL 性别
nianling varchar(200) 是 NULL 年龄
chushengriqi date 否 出生日期
xueli varchar(200) 是 NULL 学历
bumen varchar(200) 否 部门
zhiwu varchar(200) 是 NULL 职务
keshi varchar(200) 是 NULL 科室
shenfenzheng varchar(200) 是 NULL 身份证
shouji varchar(200) 是 NULL 手机
touxiang varchar(200) 是 NULL 头像
yiyuanbianhao varchar(200) 是 NULL 医院编号
表4.14 医院科室
字段 类型 空 默认 注释
id (主键) bigint(20) 否 主键
addtime timestamp 否 CURRENT_TIMESTAMP 创建时间
keshimingcheng varchar(200) 是 NULL 科室名称
keshileixing varchar(200) 是 NULL 科室类型
keshijianjie longtext 是 NULL 科室简介
keshirenyuan longtext 是 NULL 科室人员
keshitupian varchar(200) 是 NULL 科室图片
yiyuanbianhao varchar(200) 是 NULL 医院编号
表4.15 医院科室预约
字段 类型 空 默认 注释
id (主键) bigint(20) 否 主键
addtime timestamp 否 CURRENT_TIMESTAMP 创建时间
keshileixing varchar(200) 是 NULL 科室类型
yiyuanbianhao varchar(200) 是 NULL 医院编号
keshimingcheng varchar(200) 是 NULL 科室名称
yuyueshijian datetime 是 NULL 预约时间
zhanghao varchar(200) 是 NULL 账号
xingming varchar(200) 是 NULL 姓名
sfsh varchar(200) 是 否 是否审核
shhf longtext 是 NULL 审核回复
表4.16 医院列表
字段 类型 空 默认 注释
id (主键) bigint(20) 否 主键
addtime timestamp 否 CURRENT_TIMESTAMP 创建时间
yiyuanbianhao varchar(200) 否 医院编号
mima varchar(200) 否 密码
yiyuanmingcheng varchar(200) 否 医院名称
fuzeren varchar(200) 是 NULL 负责人
fuzerenshouji varchar(200) 是 NULL 负责人手机
youxiang varchar(200) 是 NULL 邮箱
fuzerenshenfenzheng varchar(200) 是 NULL 负责人身份证
zhanghao varchar(200) 是 NULL 账号
xingming varchar(200) 是 NULL 姓名
zhuceshijian datetime 是 NULL 注册时间
表4.17 医院文章
字段 类型 空 默认 注释
id (主键) bigint(20) 否 主键
addtime timestamp 否 CURRENT_TIMESTAMP 创建时间
biaoti varchar(200) 是 NULL 标题
wenzhangleixing varchar(200) 是 NULL 文章类型
neirong longtext 是 NULL 内容
zuozhe varchar(200) 是 NULL 作者
shipin varchar(200) 是 NULL 视频
fabiaoshijian datetime 是 NULL 发表时间
wenzhangtupian varchar(200) 是 NULL 文章图片
yiyuanbianhao varchar(200) 是 NULL 医院编号
thumbsupnum int(11) 是 0 赞
crazilynum int(11) 是 0 踩
表4.18 医院注册
字段 类型 空 默认 注释
id (主键) bigint(20) 否 主键
addtime timestamp 否 CURRENT_TIMESTAMP 创建时间
yiyuanmingcheng varchar(200) 否 医院名称
mima varchar(200) 否 密码
fuzeren varchar(200) 是 NULL 负责人
fuzerenshouji varchar(200) 是 NULL 负责人手机
youxiang varchar(200) 是 NULL 邮箱
fuzerenshenfenzheng varchar(200) 是 NULL 负责人身份证
zhanghao varchar(200) 是 NULL 账号
xingming varchar(200) 是 NULL 姓名
sfsh varchar(200) 是 否 是否审核
shhf longtext 是 NULL 审核回复
表4.19 用户
字段 类型 空 默认 注释
id (主键) bigint(20) 否 主键
addtime timestamp 否 CURRENT_TIMESTAMP 创建时间
zhanghao varchar(200) 否 账号
mima varchar(200) 否 密码
xingming varchar(200) 否 姓名
xingbie varchar(200) 是 NULL 性别
shouji varchar(200) 是 NULL 手机
youxiang varchar(200) 是 NULL 邮箱
shenfenzheng varchar(200) 是 NULL 身份证
zhaopian varchar(200) 是 NULL 照片
表4.20 院区展示
字段 类型 空 默认 注释
id (主键) bigint(20) 否 主键
addtime timestamp 否 CURRENT_TIMESTAMP 创建时间
yiyuanbianhao varchar(200) 是 NULL 医院编号
yuanqumingcheng varchar(200) 否 院区名称
yuanqujianjie longtext 是 NULL 院区简介
yuanqudizhi varchar(200) 是 NULL 院区地址
yuanqudianhua varchar(200) 是 NULL 院区电话
yuanquzongmianji varchar(200) 是 NULL 院区总面积
zhuanjia longtext 是 NULL 专家
keshi longtext 是 NULL 科室
yuanqutupian varchar(200) 是 NULL 院区图片