第4章 系统设计
市面上设计比较好的系统都有一个共同特征,就是主题鲜明突出。通过对页面简洁清晰的布局,让页面的内容,包括文字语言,或者视频图片等元素可以清晰表达出系统的主题。让来访用户无需花费过多精力和时间找寻需要的内容。
4.1界面设计原则
一般来说,大部分用户使用系统,有些是想从系统中获取需要的信息,有些则是使用系统提供的服务。所以,为了改善用户体验,提高系统的使用率,在对系统界面设计时,需要按照下面的原则进行。
第一点,对用户进行分析,了解用户使用系统的目的,以及使用系统的方式,考虑大部分用户的阅读习惯,设计Z字形或F型结构可以方便用户获取信息。
第二点:设计有效的导航,这个包括每个页面上都有导航条的显示,有时也可以在页面的底部设计导航条,当用户进入具体页面时,要设计相应的位置提示,在页面中比较特殊的位置,需要设计返回链接,可以返回上个页面,也可以返回首页等。
第三点:对整个系统要运用统一的设计方案,包括色彩方案的一致性,页面模板的相似性等,对相同操作和专业术语的描述在整个系统中也应该保持一致。
第四点:设计的界面要保证传达的内容清晰准确。要避免在同一个页面设计非常多的内容,另外可以准确对系统内容进行分类,把页面中用户视觉集中的位置,用来显示重要信息。
作为初学者,并没有那么多的设计经验,但是可以运用上面提到的界面设计原则设计出比较好的系统,可以让用户产生良好的使用体验。
4.2功能结构设计
为了让系统的编码可以顺利进行,特意对本系统功能进行细分设计,设计的系统功能结构见下图。
yuanm
图4.1 系统功能结构图
4.3 数据库设计
开发一个系统也需要提前设计数据库。这里的数据库是相关数据的集合,存储在一起的这些数据也是按照一定的组织方式进行的。目前,数据库能够服务于多种应用程序,则是源于它存储方式最佳,具备数据冗余率低的优势。虽然数据库为程序提供信息存储服务,但它与程序之间也可以保持较高的独立性。总而言之,数据库经历了很长一段时间的发展,从最初的不为人知,到现在的人尽皆知,其相关技术也越发成熟,同时也拥有着坚实的理论基础。
4.3.1 数据库概念设计
这部分内容需要借助数据库关系图来完成,也需要使用专门绘制数据库关系图的工具,比如Visio工具就可以设计E-R图(数据库关系图)。设计数据库,也需要按照设计的流程进行,首先还是要根据需求完成实体的确定,分析实体具有的特征,还有对实体间的关联关系进行确定。最后才是使用E-R模型的表示方法,绘制本系统的E-R图。不管是使用亿图软件,还是Visio工具,对于E-R模型的表示符号都一样,通常矩形代表实体,实体间存在的关系用菱形符号表示,实体的属性也就是实体的特征用符号椭圆表示。最后使用直线将矩形,菱形和椭圆等符号连接起来。接下来就开始对本系统的E-R图进行绘制。
(1)下图是意见反馈实体和其具备的属性。
图4.1 意见反馈实体属性图
(2)下图是公告信息实体和其具备的属性。
图4.2 公告信息实体属性图
(3)下图是项目申请实体和其具备的属性。
图4.3 项目申请实体属性图
(4)下图是字典表实体和其具备的属性。
图4.4 字典表实体属性图
(5)下图是费用信息实体和其具备的属性。
图4.5 费用信息实体属性图
(6)下图是医生请假实体和其具备的属性。
图4.6 医生请假实体属性图
(7)下图是理疗项目实体和其具备的属性。
图4.7 理疗项目实体属性图
(8)下图是患者请假实体和其具备的属性。
图4.8 患者请假实体属性图
(9)下图是医生实体和其具备的属性。
图4.9 医生实体属性图
(10)下图是患者实体和其具备的属性。
图4.10 患者实体属性图
(11)下图是床位申请实体和其具备的属性。
图4.11 床位申请实体属性图
(12)下图是床位信息实体和其具备的属性。
图4.12 床位信息实体属性图
(13)下图是医嘱实体和其具备的属性。
图4.13 医嘱实体属性图
(14)下图是用户表实体和其具备的属性。
图4.14 用户表实体属性图
4.3.2 数据库物理设计
作为程序后台的支持,本数据库也需要设计数据存储的结构。而数据存储结构的设计就包括了数据表结构的设计和创建。数据表结构包括了字段,数据类型,还有字段的取值范围等信息。而E-R模型中的实体就是一张表,实体的特征就可以作为该表中的字段,根据本程序信息存储要求,设计每个字段需要的类型,还有该字段的取值范围等。每当设计完成一张数据表,就需要及时保存在数据库里面,并对该设计的数据表准确命名,要求设置的数据表的名称尽量不要是中文,而且要方便记忆。因为在程序编码阶段,通过SQL语句可以把程序里面的数据写入在各个数据表里面,而这个环节需要使用到数据表的名称。如果数据表名称是中文的话,可能会乱码并影响程序运行。下面就以表格形式展示设计的结果。
表4.1床位申请表
序号 |
列名 |
数据类型 |
说明 |
允许空 |
---|---|---|---|---|
1 |
Id |
Int |
id |
否 |
2 |
chuangwei_id |
Integer |
床位 |
是 |
3 |
yonghu_id |
Integer |
用户 |
是 |
4 |
chaungweishenqing_yesno_types |
Integer |
申请状态 |
是 |
5 |
chaungweishenqing_yesno_text |
String |
申请结果 |
是 |
6 |
update_time |
Date |
回复时间 |
是 |
7 |
create_time |
Date |
创建时间 |
是 |
表4.2床位信息表
序号 |
列名 |
数据类型 |
说明 |
允许空 |
---|---|---|---|---|
1 |
Id |
Int |
id |
否 |
2 |
chuangwei_name |
String |
床位编号 |
是 |
3 |
chuangwei_address |
String |
房间地址 |
是 |
4 |
chuangwei_types |
Integer |
床位状态 |
是 |
5 |
insert_time |
Date |
添加时间 |
是 |
6 |
create_time |
Date |
创建时间 |
是 |
表4.3字典表表
序号 |
列名 |
数据类型 |
说明 |
允许空 |
---|---|---|---|---|
1 |
Id |
Int |
id |
否 |
2 |
dic_code |
String |
字段 |
是 |
3 |
dic_name |
String |
字段名 |
是 |
4 |
code_index |
Integer |
编码 |
是 |
5 |
index_name |
String |
编码名字 |
是 |
6 |
super_id |
Integer |
父字段id |
是 |
7 |
beizhu |
String |
备注 |
是 |
8 |
create_time |
Date |
创建时间 |
是 |
表4.4费用信息表
序号 |
列名 |
数据类型 |
说明 |
允许空 |
---|---|---|---|---|
1 |
Id |
Int |
id |
否 |
2 |
yonghu_id |
Integer |
用户 |
是 |
3 |
feiyongxinxi_name |
String |
缴费项目 |
是 |
4 |
feiyongxinxi_types |
Integer |
缴费类型 |
是 |
5 |
feiyongxinxi_new_money |
BigDecimal |
缴费金额 |
是 |
6 |
feiyongxinxi_text |
String |
缴费详情 |
是 |
7 |
create_time |
Date |
创建时间 |
是 |
表4.5理疗项目表
序号 |
列名 |
数据类型 |
说明 |
允许空 |
---|---|---|---|---|
1 |
Id |
Int |
id |
否 |
2 |
liliaoxiangmu_name |
String |
项目名称 |
是 |
3 |
liliaoxiangmu_types |
Integer |
项目类型 |
是 |
4 |
liliaoxiangmu_content |
String |
项目介绍 |
是 |
5 |
insert_time |
Date |
添加时间 |
是 |
6 |
create_time |
Date |
创建时间 |
是 |
表4.6意见反馈表
序号 |
列名 |
数据类型 |
说明 |
允许空 |
---|---|---|---|---|
1 |
Id |
Int |
id |
否 |
2 |
yonghu_id |
Integer |
用户 |
是 |
3 |
liuyan_name |
String |
反馈标题 |
是 |
4 |
liuyan_text |
String |
反馈内容 |
是 |
5 |
insert_time |
Date |
反馈时间 |
是 |
6 |
reply_text |
String |
回复内容 |
是 |
7 |
update_time |
Date |
回复时间 |
是 |
8 |
create_time |
Date |
创建时间 |
是 |
表4.7公告信息表
序号 |
列名 |
数据类型 |
说明 |
允许空 |
---|---|---|---|---|
1 |
Id |
Int |
id |
否 |
2 |
news_name |
String |
公告标题 |
是 |
3 |
news_types |
Integer |
公告类型 |
是 |
4 |
news_photo |
String |
公告图片 |
是 |
5 |
insert_time |
Date |
添加时间 |
是 |
6 |
news_content |
String |
公告详情 |
是 |
7 |
create_time |
Date |
创建时间 |
是 |
表4.8项目申请表
序号 |
列名 |
数据类型 |
说明 |
允许空 |
---|---|---|---|---|
1 |
Id |
Int |
id |
否 |
2 |
liliaoxiangmu_id |
Integer |
理疗项目 |
是 |
3 |
yonghu_id |
Integer |
用户 |
是 |
4 |
xiangmushenqing_yesno_types |
Integer |
申请状态 |
是 |
5 |
xiangmushenqing_yesno_text |
String |
申请结果 |
是 |
6 |
update_time |
Date |
回复时间 |
是 |
7 |
create_time |
Date |
创建时间 |
是 |
表4.9患者请假表
序号 |
列名 |
数据类型 |
说明 |
允许空 |
---|---|---|---|---|
1 |
Id |
Int |
id |
否 |
2 |
xueshengqingjia_name |
String |
请假原因 |
是 |
3 |
xueshengqingjia_text |
String |
详情 |
是 |
4 |
qingjia_types |
Integer |
请假类型 |
是 |
5 |
xueshengqingjia_time |
Date |
请假时间 |
是 |
6 |
xueshengqingjia_number |
Integer |
请假天数 |
是 |
7 |
yonghu_id |
Integer |
患者 |
是 |
8 |
xueshengqingjia_yesno_types |
Integer |
审核结果 |
是 |
9 |
xueshengqingjia_yesno_text |
String |
处理结果 |
是 |
10 |
insert_time |
Date |
创建时间 |
是 |
11 |
create_time |
Date |
创建时间 |
是 |
表4.10医生表
序号 |
列名 |
数据类型 |
说明 |
允许空 |
---|---|---|---|---|
1 |
Id |
Int |
id |
否 |
2 |
yisheng_uuid_number |
String |
医生工号 |
是 |
3 |
yisheng_name |
String |
医生姓名 |
是 |
4 |
yisheng_phone |
String |
手机号 |
是 |
5 |
yisheng_photo |
String |
头像 |
是 |
6 |
create_time |
Date |
创建时间 |
是 |
表4.11医生请假表
序号 |
列名 |
数据类型 |
说明 |
允许空 |
---|---|---|---|---|
1 |
Id |
Int |
id |
否 |
2 |
yishengqingjia_name |
String |
请假原因 |
是 |
3 |
yishengqingjia_text |
String |
详情 |
是 |
4 |
qingjia_types |
Integer |
请假类型 |
是 |
5 |
yishengqingjia_time |
Date |
请假时间 |
是 |
6 |
yishengqingjia_number |
Integer |
请假天数 |
是 |
7 |
yisheng_id |
Integer |
医生 |
是 |
8 |
yishengqingjia_yesno_types |
Integer |
审核结果 |
是 |
9 |
yishengqingjia_yesno_text |
String |
处理结果 |
是 |
10 |
insert_time |
Date |
创建时间 |
是 |
11 |
create_time |
Date |
创建时间 |
是 |
表4.12医嘱表
序号 |
列名 |
数据类型 |
说明 |
允许空 |
---|---|---|---|---|
1 |
Id |
Int |
id |
否 |
2 |
yizhu_name |
String |
标题 |
是 |
3 |
yonghu_id |
Integer |
患者 |
是 |
4 |
yizhu_bingqing |
String |
病情 |
是 |
5 |
jianchaxiangmu |
String |
检查项目 |
是 |
6 |
jianchajieguo |
String |
检查结果 |
是 |
7 |
yaodan_text |
String |
药单 |
是 |
8 |
yizhu_text |
String |
医嘱 |
是 |
9 |
zhuyishixiang |
String |
注意事项 |
是 |
10 |
yizhu_file |
String |
病例附件 |
是 |
11 |
yizhu_time |
Date |
日期 |
是 |
12 |
yisheng_id |
Integer |
医生 |
是 |
13 |
create_time |
Date |
创建时间 |
是 |
表4.13患者表
序号 |
列名 |
数据类型 |
说明 |
允许空 |
---|---|---|---|---|
1 |
Id |
Int |
id |
否 |
2 |
yonghu_name |
String |
患者姓名 |
是 |
3 |
yonghu_photo |
String |
头像 |
是 |
4 |
yonghu_phone |
String |
联系方式 |
是 |
5 |
yonghu_email |
String |
邮箱 |
是 |
6 |
yisheng_id |
Integer |
医生 |
是 |
7 |
yonghu_delete |
Integer |
假删 |
是 |
8 |
insert_time |
Date |
添加时间 |
是 |
9 |
create_time |
Date |
创建时间 |
是 |
表4.14用户表表
序号 |
列名 |
数据类型 |
说明 |
允许空 |
---|---|---|---|---|
1 |
Id |
Int |
id |
否 |
2 |
username |
String |
用户名 |
是 |
3 |
password |
String |
密码 |
是 |
4 |
role |
String |
角色 |
是 |
5 |
addtime |
Date |
新增时间 |
是 |
第5章 系统实现
这个环节需要使用前面的设计方案,包括对系统模块的设计,还有对程序后台的数据支持的数据库的设计等。不过这部分内容还是强调系统编码人员的开发能力,要把前面设计的内容通过编码的形式以一个完整的,可以运行的系统呈现出来。
功能模块的实现
5.1患者信息管理
如图5.1显示的就是患者信息管理页面,此页面提供给管理员的功能有:患者信息的查询管理,可以删除患者信息、修改患者信息、新增患者信息,
还进行了对用户名称的模糊查询的条件
图5.1 患者信息管理页面
5.2 医生信息管理
如图5.2显示的就是医生信息管理页面,此页面提供给管理员的功能有:查看已发布的医生信息数据,修改医生信息,医生信息作废,即可删除,还进行了对医生信息名称的模糊查询 医生信息信息的类型查询等等一些条件。
图5.2 医生信息管理页面
5.3公告类型管理
如图5.3显示的就是公告类型管理页面,此页面提供给管理员的功能有:根据公告类型进行条件查询,还可以对公告类型进行新增、修改、查询操作等等。
图5.3 公告类型管理页面
5.4公告信息管理
如图5.4显示的就是公告信息管理页面,此页面提供给管理员的功能有:根据公告信息进行新增、修改、查询操作等等。
图5.4 公告信息管理页面