第4章 系统设计
4.1 系统设计的原则
在系统设计过程中,也需要遵循相应的设计原则,这些设计原则可以帮助设计者在短时间内设计出符合设计规范的设计方案。设计原则主要有可靠性,安全性,可定制化,可扩展性,可维护性,可升级性以及客户体验等原则。下面就对这些原则进行简要阐述。
可靠性:一个软件是否可靠决定了其是否被用户使用,设计不可靠的软件,用户很容易就遗弃;
安全性:程序软件承担了信息的保存与管理等事务,安全性不足的软件会导致使用者承担巨大的损失;所以系统安全也是需要考虑进入的;
可定制化:市场环境从来都不是一直固定不变,面对客户群体的改变,以及使用环境的改变,市场需求的改变等因素,程序软件也要易于调整以适应各种变化;
可扩展性:程序软件在运行使用期间,也需要及时引进当下的新技术来进行系统优化,主要就是在系统功能层面,系统性能层面上进行相应的扩展,只有这样才能让系统在实际生活中继续占有市场;
可维护性:程序软件的维护需要一定量的资金,不管是排除现有程序错误,还是变更软件的现有需求,都需要在软件技术上投入一定资金,所以易于维护的软件程序就可以降低技术层面的资金消耗;
可升级性:程序软件的投入使用,会面临用户数量增多的情况,用户对软件的使用率也会提升,所以系统面临这种情况,仍然需要通过升级保持性能的合理,这样才能够适应市场;
客户体验:设计出来的程序软件在界面上不能够太复杂,要遵循界面设计的原理设计出简单,方便操作的功能操作界面,让用户易于接受软件,并乐于使用软件提供的功能。
4.2 系统结构设计
在系统结构设计上,经综合考虑还是选择比js更加简洁的vue框架,现如今浏览器已经实现了普及,并在技术上逐渐完善和成熟,它在节约软件开发成本的基础上,还能实现原本用专业软件操作才能实现的强大功能。总之,小程序架构是当下全新的,认可度高的系统构造技术。系统结构设计图通过绘制,效果展示如下:
图4-1 系统结构设计图
4.3功能结构设计
在管理员功能模块确定下来的基础上,对管理员各个功能进行设计,确定管理员功能的详细模块。绘制的管理员功能结构见下图。
图4.3 管理员功能结构图
4.4数据库设计
与功能结构设计一样,数据库设计也是程序开发不可避免的设计环节,数据库设计最主要的目的就是帮助运行程序存储相应的数据信息。数据库设计包含的内容有数据表结构的设计,也包含了数据库E-R图的设计。
4.4.1 数据库E-R图
在绘制E-R图之前,先要找出数据库的实体,明确各个实体具有的属性,比如用户信息这个实体,它具备的属性包括了用户的姓名属性,用户的密码属性,用户的创建时间属性等,所以明确了用户这个实体,以及用户实体具备的属性之后,就需要根据这些信息绘制用户实体对应的实体属性图了。绘制软件选用当下认可度高,使用范围广,操作便利的微软旗下的Visio工具。
(1)下图是医生挂号实体和其具备的属性。
医生挂号实体属性图
(2)下图是用户实体和其具备的属性。
用户实体属性图
(3)下图是药品实体和其具备的属性。
药品实体属性图
(4)下图是医生咨询实体和其具备的属性。
医生咨询实体属性图
(5)下图是药品入库实体和其具备的属性。
药品入库实体属性图
(6)下图是病例实体和其具备的属性。
病例实体属性图
(7)下图是医院资讯实体和其具备的属性。
医院资讯实体属性图
(8)下图是病人实体和其具备的属性。
病人实体属性图
(9)下图是药品使用实体和其具备的属性。
药品使用实体属性图
(10)下图是医生实体和其具备的属性。
医生实体属性图
4.4.2 数据库表结构
在进行这部分设计之前,需要明白和掌握数据类型以及各个数据类型的长度范围等知识,因为在一张具体的数据表中,为了方便理解,这里就举个简单的例子。比如用户信息表,这个表格的字段就是用户这个实体具备的属性,这时就需要对字段进行数据类型,以及字段长度的设置,也要设置一个主键来作为用户信息表的唯一标识。这些都是数据库表结构设计需要完成的内容。根据城乡居民基本医疗信息管理系统的功能设计以及数据库设计要求,展示该系统的数据表结构。
表4.1病例表
序号 | 列名 | 数据类型 | 说明 | 允许空 |
---|---|---|---|---|
1 | Id | Int | id | 否 |
2 | bingli_uuid_number | String | 病例编号 | 是 |
3 | bingren_id | Integer | 病人 | 是 |
4 | yisheng_id | Integer | 医生 | 是 |
5 | jiancha_time | Date | 检查时间 | 是 |
6 | bingrenzishu_content | String | 病人自述 | 是 |
7 | jianchajieguo_content | String | 检查结果 | 是 |
8 | yishengkaifang_content | String | 医生开方 | 是 |
9 | yishengjianyi_content | String | 医生建议 | 是 |
10 | huafeijine | BigDecimal | 花费金额 | 是 |
11 | xiacijiuzhen_time | Date | 下次就诊时间 | 是 |
12 | bingli_types | Integer | 状态 | 是 |
13 | insert_time | Date | 录入时间 | 是 |
14 | create_time | Date | 创建时间 | 是 |
表4.2病人表
序号 | 列名 | 数据类型 | 说明 | 允许空 |
---|---|---|---|---|
1 | Id | Int | id | 否 |
2 | yonghu_id | Integer | 用户 | 是 |
3 | kanhuren_name | String | 看护人姓名 | 是 |
4 | kanhuren_phone | String | 看护人联系方式 | 是 |
5 | bingren_name | String | 病人姓名 | 是 |
6 | bingren_phone | String | 病人手机号 | 是 |
7 | bingren_id_number | String | 病人身份证号 | 是 |
8 | sex_types | Integer | 性别 | 是 |
9 | bingren_types | Integer | 病人类型 | 是 |
10 | age | Integer | 年龄 | 是 |
11 | bingren_photo | String | 病人照片 | 是 |
12 | bingren_content | String | 病人描述 | 是 |
13 | insert_time | Date | 来访时间 | 是 |
14 | 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 | gonggao_name | String | 医院资讯名称 | 是 |
3 | gonggao_photo | String | 医院资讯图片 | 是 |
4 | gonggao_types | Integer | 医院资讯类型 | 是 |
5 | insert_time | Date | 医院资讯发布时间 | 是 |
6 | gonggao_content | String | 医院资讯详情 | 是 |
7 | create_time | Date | 创建时间 | 是 |
表4.5药品表
序号 | 列名 | 数据类型 | 说明 | 允许空 |
---|---|---|---|---|
1 | Id | Int | id | 否 |
2 | yaopin_name | String | 药品名称 | 是 |
3 | yaopin_uuid_number | String | 药品编号 | 是 |
4 | yaopin_photo | String | 药品照片 | 是 |
5 | shengchanchangjia | String | 生产厂家 | 是 |
6 | yaopin_types | Integer | 药品类型 | 是 |
7 | yaopin_kucun_number | Integer | 药品库存 | 是 |
8 | yaopin_jinjia_money | BigDecimal | 药品进价 | 是 |
9 | yaopin_new_money | BigDecimal | 售价 | 是 |
10 | yaopin_gongxiao_content | String | 药品功效 | 是 |
11 | yaopin_jinji_content | String | 药品禁忌 | 是 |
12 | yaopin_zhuyi_content | String | 注意事项 | 是 |
13 | yaopin_content | String | 药品详情 | 是 |
14 | insert_time | Date | 录入时间 | 是 |
15 | create_time | Date | 创建时间 | 是 |
表4.6药品入库表
序号 | 列名 | 数据类型 | 说明 | 允许空 |
---|---|---|---|---|
1 | Id | Int | id | 否 |
2 | yaopin_id | Integer | 药品 | 是 |
3 | yaopinruku_uuid_number | String | 药品入库编号 | 是 |
4 | yaopinruku_number | Integer | 入库数量 | 是 |
5 | caozuo_time | Date | 入库时间 | 是 |
6 | yaopinruku_content | String | 入库备注 | 是 |
7 | insert_time | Date | 录入时间 | 是 |
8 | create_time | Date | 创建时间 | 是 |
表4.7药品使用表
序号 | 列名 | 数据类型 | 说明 | 允许空 |
---|---|---|---|---|
1 | Id | Int | id | 否 |
2 | yaopin_id | Integer | 药品 | 是 |
3 | bingren_id | Integer | 病人 | 是 |
4 | yisheng_id | Integer | 医生 | 是 |
5 | yaopinshiyong_uuid_number | String | 药品使用编号 | 是 |
6 | yaopinshiyong_number | Integer | 使用数量 | 是 |
7 | caozuo_time | Date | 使用时间 | 是 |
8 | yaopinshiyong_content | String | 使用备注 | 是 |
9 | insert_time | Date | 录入时间 | 是 |
10 | create_time | Date | 创建时间 | 是 |
表4.8医生表
序号 | 列名 | 数据类型 | 说明 | 允许空 |
---|---|---|---|---|
1 | Id | Int | id | 否 |
2 | yisheng_name | String | 医生姓名 | 是 |
3 | yisheng_phone | String | 医生手机号 | 是 |
4 | yisheng_id_number | String | 医生身份证号 | 是 |
5 | yisheng_photo | String | 医生头像 | 是 |
6 | zuozhen_shijian | String | 坐诊时间 | 是 |
7 | guahaojine | BigDecimal | 挂号金额 | 是 |
8 | guahaoshuliang | Integer | 每天挂号数量 | 是 |
9 | keshi_types | Integer | 科室 | 是 |
10 | zhiwei_types | Integer | 职位 | 是 |
11 | yisheng_email | String | 医生邮箱 | 是 |
12 | yisheng_content | String | 医生介绍 | 是 |
13 | create_time | Date | 创建时间 | 是 |
表4.9医生咨询表
序号 | 列名 | 数据类型 | 说明 | 允许空 |
---|---|---|---|---|
1 | Id | Int | id | 否 |
2 | yonghu_id | Integer | 提问人 | 是 |
3 | yisheng_id | Integer | 回答人 | 是 |
4 | yisheng_chat_issue_text | String | 问题 | 是 |
5 | issue_time | Date | 问题时间 | 是 |
6 | yisheng_chat_reply_text | String | 回复 | 是 |
7 | reply_time | Date | 回复时间 | 是 |
8 | zhuangtai_types | Integer | 状态 | 是 |
9 | yisheng_chat_types | Integer | 数据类型 | 是 |
10 | insert_time | Date | 提问时间 | 是 |
11 | create_time | Date | 创建时间 | 是 |
表4.10医生挂号表
序号 | 列名 | 数据类型 | 说明 | 允许空 |
---|---|---|---|---|
1 | Id | Int | id | 否 |
2 | yisheng_guahao_uuid_number | String | 挂号编号 | 是 |
3 | bingren_id | Integer | 病人 | 是 |
4 | yisheng_id | Integer | 医生 | 是 |
5 | huafeijine | BigDecimal | 花费金额 | 是 |
6 | yisheng_guahao_time | Date | 挂号日期 | 是 |
7 | yisheng_guahao_types | Integer | 挂号状态 | 是 |
8 | insert_time | Date | 申请挂号时间 | 是 |
9 | create_time | Date | 创建时间 | 是 |
表4.11用户表
序号 | 列名 | 数据类型 | 说明 | 允许空 |
---|---|---|---|---|
1 | Id | Int | id | 否 |
2 | yonghu_name | String | 用户姓名 | 是 |
3 | yonghu_phone | String | 用户手机号 | 是 |
4 | yonghu_id_number | String | 用户身份证号 | 是 |
5 | yonghu_photo | String | 用户头像 | 是 |
6 | yonghu_email | String | 用户邮箱 | 是 |
7 | new_money | BigDecimal | 余额 | 是 |
8 | create_time | Date | 创建时间 | 是 |
表4.12管理员表
序号 | 列名 | 数据类型 | 说明 | 允许空 |
---|---|---|---|---|
1 | Id | Int | id | 否 |
2 | username | String | 学生名 | 是 |
3 | password | String | 密码 | 是 |
4 | role | String | 角色 | 是 |
5 | addtime | Date | 新增时间 | 是 |
第五章 系统实现
系统实现这个章节的内容主要还是展示系统的功能界面设计效果,在实现系统基本功能,比如修改,比如添加,比如删除等管理功能的同时,也显示出系统各个功能的界面实现效果,该部分内容一方面与前面提到的系统分析,系统设计的内容相呼应,另一方面也是一个实际成果的展示。
5.1管理员功能实现
5.1.1 病例管理
此页面让管理员管理病例的数据,病例管理页面见下图。此页面主要实现病例的增加、修改、删除、查看的功能。
图5-1 病例管理页面
5.1.2 医院资讯信息管理
医院资讯信息管理页面提供的功能操作有:新增医院资讯,修改医院资讯,删除医院资讯操作。下图就是医院资讯信息管理页面。
图5.3 医院资讯信息管理页面
5.1.3医院资讯类型管理
医院资讯类型管理页面显示所有医院资讯类型,在此页面既可以让管理员添加新的医院资讯信息类型,也能对已有的医院资讯类型信息执行编辑更新,失效的医院资讯类型信息也能让管理员快速删除。下图就是医院资讯类型管理页面。
图5.4 医院资讯类型列表页面