中国青年人血压管理数据库系统总体设计.docx
《中国青年人血压管理数据库系统总体设计.docx》由会员分享,可在线阅读,更多相关《中国青年人血压管理数据库系统总体设计.docx(20页珍藏版)》请在冰豆网上搜索。
中国青年人血压管理数据库系统总体设计
中国青年人血压管理数据库系统
技术研究报告
目录
第一章中国青年人血压管理数据库系统需求分析1
1.1需求概述1
1.1.1目标用户1
1.1.2功能概述1
1.2详细需求1
1.2.1登录管理1
1.2.2体检人群分类管理1
1.2.3体检项目分类2
1.2.4体检套餐2
1.2.5体检事件2
1.2.6体检列表2
第二章中国青年人血压管理数据库系统总体设计2
2.1运行环境2
2.1.1硬件环境2
2.1.2软件环境3
2.2设计原则3
2.3界面设计3
2.3.1界面设计核心理念3
2.3.2操作流程4
2.4服务器设计4
2.4.1框架设计4
2.4数据库设计5
2.4.3服务器端与客户端的交互9
第三章中国青年人血压管理数据库系统实现及测试10
3.1界面布局实现10
3.2主要功能实现与展示10
3.2.1体检套餐设计10
3.2.2体检事件11
3.2.3体检数据12
3.2.4体检报告13
第一章中国青年人血压管理数据库系统需求分析
1.1需求概述
中国青年人血压数据库系统是一款关联体检事件,体检时间,体检医生,体检所在楼层,温度,机器编号及体检人的基本信息及体检结果数据的数据库系统。
可以单个或批量导入导出体检信息,包括文字信息和图形文件;可以方便地进行检索,查看与修改。
1.1.1目标用户
该数据库系统主要针对体检医生使用,医生注册登录后之后获取权限进行操作。
1.1.2功能概述
用户可以创建体检事件,动态创建体检列表,选择体检项目,并与创建的体检事件相关联。
通过手动输入或通过身份证读取获取体检人的基础信息,并存入数据库;血压测量结束后,存入中心动脉压,外周收缩压,外周舒张压,平均动脉压,心率等体检结果,以及体检波形图文件。
可以从数据库查询并导出体检报告,进行编辑或打印。
1.2详细需求
1.2.1登录管理
用户只能在登录的状态下才可以进入程序操作数据库,以达到保护隐私的目的。
登陆方式进行多角色管理,分为管理员端和医生端。
管理员端可以批量导出数据,编辑修改体检报告;医生端只能进行单条数据的录入和编辑。
1.2.2体检人群分类管理
该模块可以进行学生,职工,居民三类人群的分类管理,每类人群设置特有的数据库字段。
1.2.3体检项目分类
该模块可以新建体检类型,体检项目,体检子项目,以供体检套餐设计和新建体检列表时选择。
其中,体检类型与体检项目,体检项目与体检子项目均为一对多关系。
1.2.4体检套餐
该模块可以新建体检套餐,并进行套餐设计。
套餐设计中可以根据需求选择体检项目中的体检类型,体检项目,体检子项目。
1.2.5体检事件
用户可以根据实际情况新建或编辑体检事件,每个体检事件都必须与体检套餐相关联。
1.2.6体检列表
用户可自定义选择体检项目组成体检列表,体检列表必须关联某一个体检事件。
第二章中国青年人血压管理数据库系统总体设计
2.1运行环境
2.1.1硬件环境
CPU:
P3以上
内存:
4G以上
分辨率:
推荐使用1920*1080
2.1.2软件环境
操作系统:
win7/win8/win8.1/win10
浏览器:
Chrome/IE8以上
软件依赖:
CASProViewer
2.2设计原则
数据库的设计遵循以下原则:
1.数据库必须层次分明,布局合理。
2.数据库必须高度结构化,规范化和标准化。
数据结构的设计应该遵循国家标准和行业标准,尤其要重视编码的应用。
3.设计数据库的时候,一方而要尽可能地减小冗余度,减小存储空间的占用,降低数据一致性问题发生的可能性,另一方面,还要考虑适当的冗余,以提高运行速度和降低开发难度。
4.必须维护数据的正确性和一致性。
在系统中,多个用户共享数据库,由于并发操作,可能影响数据的一致性。
因此必须用“锁”等办法保证数据的一致性。
5.设定相应的安全机制,由于数据库的信息、对特定的用户有特定的保密要求,安全机制必不可少。
2.3界面设计
2.3.1界面设计核心理念
本系统界面的设计充分遵循以用户为核心的原则,充分考虑了用户群体的使用习惯、使用场景和用户身体心理状态,采用以天蓝色为主的冷色系。
在操作上,始终提供明确的导航,尽可能地减少用户的输入,多选择;
2.3.2操作流程
用户打开系统后的操作流程大致可以总结为下图:
否
图2-1客户端操作流程
2.4服务器设计
2.4.1框架设计
后台编写采用的是PHP框架的lavarel,该框架的性能比较好,开发简洁、优雅。
Lavarel安装环境要求:
•PHP>=5.5.9[1]
•OpenSSLPHPExtension
•PDOPHPExtension
•MbstringPHPExtension
•TokenizerPHPExtension
Lavarel主要有以下优点:
1.强大的restrouter:
用简单的回调函数就可以调用,快速绑定controller和router
2.artisan:
命令行工具,很多手动的工作都自动了
3.可继承的模版,简化view的开发和管理
4.blade模版:
渲染速度更快
5.ORM
6.migration:
管理数据库和版本控制
7.测试功能强大
8.composer:
管理依赖
2.5数据库设计
中国青年人血压管理数据库系统数据库表数量庞大,下面分类进行介绍:
1用户信息
存储用户信息的表有users表,roles表,role_user表,users表保存用户基本信息信息,roles表包含用户的身份选择,role_user表映射两者之间的关系,每一个role都对应一个role。
Users表记录了用户的基本信息,如用户名,密码,电话,邮箱,关联的体检列表等,特别是这张表还包含了用户每次登陆的token,方便后台处理用户的每次请求。
Roles表记录了两种身份:
管理员和医生,每个用户都必须且只能对应一个身份。
role_user表记录了用户和身份的对应关系。
表2-1,2-2,2-3分别是users表,roles表和role_user表
表2-1用户users表
字段
类型
含义
默认是否为空
id
int
用户编号
否
name
varchar
用户姓名
否
password
varchar
用户密码
否
email
varchar
邮箱
否
telephone
varchar
手机号
否
list_id
int
体检列表
否
token
int
用户每次登陆信息
否
created_at
timestamp
创建时间
否
updated_at
timestamp
更新时间
否
表2-2roles表
字段
类型
含义
默认是否为空
id
int
角色编号
否
name
varchar
角色名
否
display_name
varchar
显示在界面的名字
否
description
varchar
角色作用
否
created_at
timestamp
创建时间
否
updated_at
timestamp
更新时间
否
表2-3role_user表
字段
类型
含义
默认是否为空
user_id
int
用户编号
否
role_id
int
角色编号
否
2体检项目
保存体检项目的表有:
check_types,check_items。
其中check_itmes又包含三类子表:
file_subitems,float_subitems,string_subitems。
Check_types表记录了体检类型,用户可根据需要添加或删除某种类型。
例如可以添加外科,无创心功能检查,超声,心电图,体检结论。
Check_items表包含了具体体检的项目,例如身高,体重,腹部超声,超声心动图,中心动脉压,外周舒张压,脉搏波形等,该表的每一个项目都从属于check_types表中的某个类型,例如身高,体重属于外科,中心动脉压,外周舒张压属于无创心功能检查,腹部超声,超声心动图属于超声,脉搏波形属于心电图。
file_subitems,float_subitems,string_subitems把check_items中的体检项目分成三类,分别是文件型项目,浮点数型项目和字符串型项目,并对体检项目进行具体设定。
例如身高在float_subitems表中,单位为cm,最大值200cm,最小值120cm;超声心动图在file_subitems中,文件类型为plot。
表2-4,2-5,2-6分别是check_types,check_items和file_subtimes表
表2-4体检类型check_types表
字段
类型
含义
默认是否为空
id
int
体检类型编号
否
name
varchar
体检类型名称
否
created_at
timestamp
创建时间
否
updated_at
timestamp
更新时间
否
表2-5体检项目check_items表
字段
类型
含义
默认是否为空
id
int
体检项目编号
否
name
varchar
体检项目名称
否
check_type_id
int
对应体检类型编号
否
created_at
timestamp
创建时间
否
updated_at
timestamp
更新时间
否
表2-6体检子项目file_subtimes表
字段
类型
含义
默认是否为空
id
int
文件型子项目编号
否
name
varchar
体检子项目名称
否
englishName
varchar
英文名称
是
check_item_id
int
对应体检项目编号
否
file_type
varchar
文件类型
是
created_at
timestamp
创建时间
否
updated_at
timestamp
更新时间
否
3体检设计
体检设计模块包含体检套餐,体检事件,体检列表。
分别储存在check_designs,check_events,check_lists表中。
体检套餐与体检事件,体检事件与体检列表均为一对多关系,每一个体检事件必须对应一个体检套餐,每一个体检列表必须对应一个体检事件。
表2-7,2-8,2-9分别是check_designs,check_events,check_lists表
表2-7体检套餐check_designs表
字段
类型
含义
默认是否为空
id
int
套餐编号
否
name
varchar
套餐名称
否
active
int
标记是否正在使用
是
created_at
timestamp
创建时间
否
updated_at
timestamp
更新时间
否
表2-8体检事件check_events表
字段
类型
含义
默认是否为空
id
int
体检事件编号
否
name
varchar
体检事件名称
否
check_design_id
int
对应体检套餐编号
否
type
varchar
体检人群类型
否
fileName
Varchar
导入的文件名称
是
startDate
date
事件开始日期
否
stopDate
date
事件结束日期
否
status
tinyint
(1)
标记是否正在使用
否
created_at
timestamp
创建时间
否
updated_at
timestamp
更新时间
否
表2-9体检列表check_lists表
字段
类型
含义
默认是否为空
id
int
体检列表编号
否
name
varchar
体检列表名称
否
temperature
int
温度
否
side
varchar
左侧或者右侧
否
user_id
Int
对应用户编号
否
floor
Int
体检楼层
否
location
varchar
体检地点
否
machineNumber
varchar
机器编号
否
check_event_id
int
对应体检事件编号
否
created_at
timestamp
创建时间
否
updated_at
timestamp
更新时间
否
4体检人群
由于体检人群包含学生,职工,居民三类人群,数据库采用多态关联,用patients表关联students表,employees表和residents表。
Patients表记录对应关系,其他表根据人群特性设置字段。
表2-10和2-11分别是patiens表和students表。
表2-8patients表
字段
类型
含义
默认是否为空
id
int
病人编号
否
checkable_id
int
多态关联id
否
checkable_type
varchar
对应体检人群类型
否
created_at
timestamp
创建时间
否
updated_at
timestamp
更新时间
否
表2-8students表
字段
类型
含义
默认是否为空
id
int
学生编号
否
name
varchar
姓名
否
gender
varchar
性别
否
old
varchar
年龄
否
school
varchar
学校
是
idNumber
varchar
身份证号
否
stuNumber
varchar
学号
否
nation
varchar
民族
否
address
varchar
地址
否
created_at
timestamp
创建时间
否
updated_at
timestamp
更新时间
否
5体检结果
根据体检项目的不同,体检结果表相应的包括三种:
check_result_files表,check_result_floats表,check_result_strings表,分别存储file_subitems,float_subitems,string_subitems三种体检项目的检查结果。
表2-12列出了check_result_files表
表2-8体检事件check_result_files表
字段
类型
含义
默认是否为空
id
int
体检事件编号
否
check_event_id
int
体检事件名称
否
doctor_id
int
对应体检套餐编号
否
patient_id
int
对应病人编号
否
file_subitem_id
int
对应文件型子项目
否
value
varchar
体检结果值
否
temperature
varchar
温度
是
floor
varchar
楼层
否
location
varchar
地址
否
machineNumber
varchar
机器号
否
dataId
varchar
created_at
timestamp
创建时间
否
updated_at
timestamp
更新时间
否
2.4.3服务器端与客户端的交互
在网络操作中,服务器与客户端的交互模式通常采用的是XML解析和JSON解析方式。
XML文件庞大、格式复杂、传输带宽宽,但是其格式统一、符合标准,与其他系统进行远程交互、数据共享比较容易。
而JSON格式比较简单、占用带宽小,直接通过键值解析数据。
对于数据较少的解析一般采用JSON解析,对于大规模数据一般采用XML解析。
本APP设计所涉及的数据量相对较小,格式简单,因此选择JSON格式进行解析。
客户端发送自己获取的token以及要请求的内容JSON,服务器端根据token信息找到对应的用户信息,然后根据JSON请求查找对应的请求,返回查找到的数据以JSON格式返回给客户端,客户端解析JSON数据显示在界面,并在后台保存到数据库。
第三章中国青年人血压管理数据库系统实现及测试
3.1界面布局实现
界面是用户获取信息最直接的来源,考虑到本软件面向的主要对象是医生,功能模块采用扁平化,颜色上选择蓝色作为主色调,整体配色偏冷,给用户以平静的感觉。
界面风格采用bootstrap框架,界面风格简洁直观,采用响应式开发,匹配不同尺寸设备,在不同尺寸的浏览器下表现良好。
登录界面截图如下:
图3-1登录界面截图
3.2主要功能实现与展示
3.2.1体检套餐设计
体检套餐是体检列表设计依赖的基础,具有高度复用性,每个体检事件都必须关联一个相应的体检套餐。
具体实现截图如下:
图3-2体检套餐设计截图
可以看到,在套餐设计界面,可以设定套餐名称,选择需要体检的项目并保存到数据库表check_designs里。
3.2.2体检事件
在集体体检中点击新建集体体检,界面右侧会弹出对话框,设置体检事件的名称,对应人群,关联套餐,体检状态等信息。
图3-3新建体检事件
3.2.3体检数据
点击查询数据按钮,网页跳转到查询数据界面,可根据筛选条件查询相应的体检数据,截图如下:
图3-4查询数据
选定条件后,点击查询数据,此时可核对查询条件,并选择查询数据或者下载:
点击确认,查询结果以表格形式列出,如图3-5:
图3-5查询结果
在此页面可进行体检信息修改。
3.2.4体检报告
点击查询报告,可以按照条件搜索相应报告,如果姓名,学号信息为空,则表示没有条件限制,选择该事件对应所有人群。
图3-6查询报告
点击查询报告,处理报告,界面弹出框可选择处理范围,并选择编辑结论或打印报告功能,该页面可以进行批量处理:
图3-7报告处理选择
在此我们选择第5个人,并选择打印,此时页面会跳转到此人的体检报告页面,体检编号为学号/工号,点击右键,选择打印,即可转化成PDF格式并打印:
图3-8打印出的体检报告格式