1.1 引言
1.1.1 编写目的
1. 保证软件开发的质量、需求的完整与可追溯性,编写此文档。通过此文档,以保证业务需求提出者与需求分析人员、开发人员、测试人员及其也相关利益人对需求达成共识。
2. 本文档供需求提出者、需求分析人员、开发人员、测试人员阅读。
1.1.2 项目背景
a.项目的委托单位:哈理工软件与微电子学院
b.开发单位:软件八班
c.主管部门:软件八班第3小组
d.待开发的软件系统的名称:医院门诊管理系统
1.1.3 定义
术语定义:
1.实现环境:系统运行的目标软件、硬件环境。
2.实现技术:系统所采用的软件技术或体系结构,Brouse/Server 结构、 中间件、Web 技术、多层体系结构、后台数据库等。
3.实现语言或工具:实现系统最终采用的编程语言或工具包,如 java、JSP等。
1.1.4 参考资料
【1】约翰·W·萨茨辛格 罗伯特 B·杰克逊 史蒂芬 D·伯德 编 机械工业出版社 系统分析与设计:敏捷迭代方法(第六版)
1.2 任务概述
1.2.1 目标
为医院开发新的门诊管理系统,实现一个从信息收集、处理到查询的完整的处理方案。建立对应的数据库来将系统中的信息保存起来以方便查询。明确划分各系统使用者的权限,为患者提供查询医生和预约医生的功能,并能对自己的预约情况进行撤销和查看操作,让患者灵活的选择就诊医师。为医生提供查询当前预约患者信息的功能,以便医生就诊前准备活动。为管理员提供添加和修改医生信息的功能,以完成医师信息的不断更新。预约管理模块要监督预约过程以确定当前预约人数在医生可接诊的最大人数之内。主要用到的技术有:java,数据库管理技术,网站设计。1.2.2 运行环境
操作系统:Microsoft Windows 2000 Advanced Server
支持环境:IIS 5.0
数 据 库:Microsoft SQL Server 20061.2.3 条件和限制
设计上:需满足医院门诊的基本需求,要求系统具有良好的扩展性。
时间上:要求系统至少运行5年。
实现上:硬件需求为内存1G以上,cpu酷睿i3及以上,使用Microsoft SQL Server 2006。
资金上:由小组收集并对目标医院使用方开展ERP活动。1.3 数据描述
1.3.1 静态数据
数据库表:患者信息,医生信息,管理员信息,预约信息,病例信息
1. 患者信息:身份证、姓名、性别、年龄、用户信息、病例。
2. 医生信息:身份证、姓名、性别、科室、用户信息、职务。
3. 管理员信息:身份证、姓名、性别、用户信息。
4. 预约信息:患者信息、医生信息、就诊时间、预约单号。
5. 病例信息:身份证、病史、就诊情况。
1.3.2动态数据
用户模块:输入用户名和密码,输入需要查询的医生名称,输入需要修改的个人信息,预约医生时返回的预约单号等。
1.3.3.数据库介绍
名称:Microsoft SQL Server 2006
类型:Relational Database
1.3.4数据词典
表1-1 患者信息
字段名
描述
数据类型
字段限制
身份证
患者实名身份证号
varchar(10)
Not null
姓名
患者姓名
varchar(10)
Not null
性别
患者性别
varchar(10)
Not null
年龄
患者年龄
int
Not null
用户信息
患者唯一账号ID
varchar(10)
PrimarKey
病例
患者病例
varchar(10)
表1-2 医生信息
字段名
描述
数据类型
字段限制
身份证
医生实名身份证号
varchar(10)
Not null
姓名
医生姓名
varchar(10)
Not null
性别
医生性别
varchar(10)
Not null
科室
医生所属科室
varchar(10)
Not null
职务
医生担任职位
varchar(10)
Not null
用户信息
医生唯一账号ID
int
PrimarKey
最大预约人数
医生可接诊人数最大数
int
Not null
表1-3 管理员信息
字段名
描述
数据类型
字段限制
身份证
管理员实名身份证号
varchar(10)
Not null
姓名
管理员姓名
varchar(10)
Not null
性别
管理员性别
varchar(10)
Not null
用户信息
管理员唯一账号ID
int
PrimarKey
表1-4 预约信息
字段名
描述
数据类型
字段限制
患者信息
患者唯一账号ID
int
PrimarKey
医生信息
医生唯一账号ID
int
PrimarKey
就诊时间
预约就诊时间
varchar(10)
Not null
预约单号
预约单的编号
int
Not null
表1-5 病例信息
字段名
描述
数据类型
字段限制
患者信息
患者唯一账号ID
int
PrimarKey
病史
患者病史
varchar(10)
就诊情况
患者就诊情况
varchar(10)
表1-6 用户信息
字段名
描述
数据类型
字段限制
用户ID
用户唯一账号ID
int
PrimarKeyNot
登陆密码
用户登录密码
varchar(10)
Not null
登陆账号
用户登录账号
varchar(10)
Not null
1.3.5 数据采集
开放数据库
1. 如果两个数据库在同一个服务器上,只要用户名设置的没有问题,就可以 直接相互访问,需要在from后将其数据库名称及表的架构所有者带上即可。
select * from DATABASE1.dbo.table1
2. 如果两个系统的数据库不在一个服务器上,建议采用链接服务器的形式处 理,或者使用openset和opendatasource的方式,这个需要对数据库的访问进 行外围服务器的配置。1.4功能需求
1.4.1 功能划分
系统分为以下几个功能模块:
1. 用户注册
2. 查询医生
3. 预约医生
4. 预约医生管理
5. 预约患者管理
6. 系统维护
1.4.2 功能描述
1.用户注册:用户必须注册账号并添加个人信息后才可登陆系统,根据不同的角色,注册不同的角色账号。2.查询医生:患者通过医生姓名或科室等关键字进行自定义查询。
3.预约医生:患者通过查询界面查询到合适医生后,对医生进行预约。
4.预约医生管理:患者预约医生后可对预约情况进行查询操作,查看主治医生信息,个人病历信息,或对于预约情况进行撤销或修改操作。
5.预约患者管理:医生登陆系统后可查询当前预约的患者,并可以查看患者信息,病历信息。
6.系统维护:管理员工作模块,可对系统中的医生信息进行管理或者添加新的医生信息,修改医生工作时间,最大预约人数等等。系统用例分析如图1-1所示:
图1-1 系统用例图
1.5 性能需求
1.5.1数据精确度
要求数据库中数据精度为浮点型,用户输入界面只能输入无符号整型。
1.5.2 时间特性
a. 响应时间最大值:半分钟;
b. 更新处理时间:实时更新;
c. 数据转换:不能使用过于复杂的转换方法,避免数据库和数据结构在升级时,发生信息的改变;
d. 传输时间:为避免服务器压力同时满足客户需求,传输速度控制在200k/s-500k/s 之间;
e. 运行时间:每日均工作,故障时间最大值3小时,其,累计故障时间不超过1周;一般来说,本系统运行一般耗时 1~2 秒,如果数据处理量比较大就 3~4 秒。
f. 系统数据查询时间应该在可接受的范围内;
g. 系统数据统计时间应该在可接受的范围内。
1.5.3 适应性
在操作方式、运行环境、与其它软件的接口以及开发计划等发生变化时,应具有的适应能力。1.6运行需求
1.6.1 用户界面
一.系统界面
(1)打开后进入主页。
(2)主页为登陆界面,需要输入用户名和密码,如果没有注册须注册后登陆,如果忘密码都可以选择忘记密码选项,修改密码。为了方便用户增加了QQ和微信端登录,以及指纹登录。图1-2 登录界面
二.用户界面
1.登陆界面
(1)上方为用户名输入框。
(2)下方为密码输入框。
(3)输入密码下方有注册和忘记密码按键选项。
(4)左下角为微信和QQ 登录选项。
(5)用户输入用户名密码进行登陆后,跳转到对应角色的用户界面。图1-3:用户界面
2.注册界面
(1)第一步选择角色-患者/医生/管理员。
(2)第二步添加个人信息,如果是管理员需要填写专用验证码
(3)第三步验证信息正确性,如果正确则显示账号信息和密码,如果错误则跳转到第一步重新填写。图1-4 注册界面(选择身份)
图1-5 注册界面(患者)
图1-6 注册界面(医生)
图1-7 注册界面(管理员)
3.患者用户界面
*注:注册后需添加患者基本信息(包括上传证件照片)
(1)上方功能按键为挂号预约、查询医生。点击查询医生之后出现自定义查询方式,姓名、科室等等,选择查询方式后进行查询,显示查询结果,并出现预约按键和重新选择按键,点击预约按键后跳转到预约界面(详情看预约界面),点击重新选择按键后返回到自定义查询环节。(查看医生信息在附图-1)
(2)下方功能按键为预约情况查询。点击后显示预约情况,包括预约单号,医生信息,个人病历信息。并显示撤销预约功能按键,点击后撤销预约,并跳转到患者用户界面。以及门诊缴费、和智能导诊。图1-8 添加就诊人信息
图1-9 患者界面
图1-10 查询医生
图1-11 显示预约状况
4.预约界面
(1)预约可分为自定义预约和查询预约,点击挂号预约后显示科室进入查询预约,选择科室以后便显示该科室医生信息和预约人数,点击上方框内放大镜可以搜索医生,便进入自定义预约。
(2)下方功能按键为预约该医生,如果医生当前预约人数=最大预约人数,则返回无法预约的错误信息,并返回预约界面。如果医生可预约,显示是否要预约该医生的界面,具有两个功能按键,确定与取消,点击取消跳转到预约界面,点击确定则跳转到预约情况界面。图1-12 自定义查询
图1-13查询医生
图1-14 选择日期
图1-15 预约医生
图1-16 预约成功
图1-17 预约失败
5.医生用户界面
(1)医生用户界面主页为查看预约情况,显示当前所有预约患者,每个患者信息均可点击并查看详细信息,详细信息界面显示患者个人信息,点击查看患者信息的箭头跳转显示患者病历,如患者没有病例,下方有小加号,医生可点击并创建患者病历。图1-18 医生界面
6.管理员界面
(1)管理员界面选择修改角色,点击后跳转到信息修改界面,可修改患者、医生信息并上传到系统。
(2)点击患者或医生的信息箭头可跳转到医生和患者的详细信息界面,并可以修改其基本信息或详细信息(医生信息图1-22 以及患者信息图1-23)图1-19 选择角色修改信息
图1-20 修改医生信息
图1-21 修改患者信息
1.6.2 硬件接口
Pentium 4 CPU及以上或酷睿i3以上,内存在1G以上的计算机。
1.6.3 软件接口
支持本系统的软件包括:Windows XP、Windows vista、Windows 7、Windows 8及Windows 10,SQL Server接口、Web接口1.6.4 故障处理
支持本系统的软件包括:Windows XP、Windows vista、Windows 7、Windows 8及Windows 10,SQL Server接口、Web接口1.7其他需求
1. 可使用性: 要求可使用,界面友好
2. 简洁性:用户对系统的直观感受简洁,便于用户操作。
3. 安全保密性:要求每个用户的账号需要使用密码登录,其他人不得登录,并且密码可以在以后进行修改。
4. 可维护性:要求本软件的维护文档齐全,便于维护
5. 数据一致性:数据的编码和语言,为了性能的考虑采用了第二或者第三范式的要求来设计,数据在多处出现的时候,全部修改的时延不能太长;
6. 可移植性:留有其他平台接口
2.1 引言
2.1.1 编写目的
在分析阶段的工作结果我们得到需求说明书,我们通过需求分析,明确了解该项目的 基本功能。现在我们根据需求说明书,着手开始设计如何实现这些功能,建立一个符合用户要求的软件系统。
概要设计就是将系统划分成模块,并决定每模块的功能和模块间的调用关系以及模块的界面。详细阐述了对用户所提出需求的设计方案,对系统中的各项功能需求、技术需求、实现环境及所使用的实现技术进行了明确定义。同时,对软件应具有的功能和性能及其他有效性需求也进行了定义。概要设计将软件系统分解成许多模块,决定每个模块的外部特征,即每个模块的功能和界面(输入和输出),以便详细设计人员参考和进行详细设计。
2.1.2 项目背景
a. 委托单位:哈理工软件与微电子学院
b. 开发单位:软件 17-8 班
c. 主管部门:软件8班第 3 组
d. 待开发的软件系统的名称:医院门诊信息查询管理系统
2.1.3 定义
术语定义:
1.实现环境:系统运行的目标软件、硬件环境。
2.实现技术:系统所采用的软件技术或体系结构,Brouse/Server 结构、中间件、Web 技术、多层体系结构、后台数据库等。
3.实现语言或工具:实现系统最终采用的编程语言或工具包,如 java、JSP等。
2.1.4 参考资料
【1】约翰·W·萨茨辛格 罗伯特 B·杰克逊 史蒂芬 D·伯德 编 机械工业出版 社 系统分析与设计:敏捷迭代方法(第六版)
2.2 任务概述
2.2.1 目标
针对医院开发的门诊管理系统,实现一个从信息收集、处理到查询的完整的处理方案。建立对应的数据库来将系统中的信息保存起来以方便查询。明确划分各系统使用者的权限:
1. 为患者提供查询医生和预约医生的功能,并能对自己的预约情况进行撤销和查看操作让患者灵活的选择就诊医师
2. 为医生提供查询当前预约患者信息的功能,以便医生就诊前准备活动
3. 为管理员提供添加和修改医生信息的功能,以完成医师信息的不断更新。
4. 预约管理模块要监督预约过程以确定 当前预约人数在医生可接诊的最大人数之内。
2.2.2 运行环境
服务器配置如下:
a. 处理器型号及内存容量:Intel 酷睿 2 四核 Q8300(盒),金士顿 4GB DDR3 18 800(2 条组双通道)
b. 外存容量、联机或脱机、媒体及其存储格式,设备的型号及数量;硬盘;WD 1TB 7200转 16MB(串口/YS)
c. 输入及输出设备的型号和数量,联机或脱机;键盘,鼠标,显示器各一个。 用户仅需提供普通配置的电脑即可。Windows 操作系统,IE6 以上浏览器, flashplayer10 以上。
2.2.3 需求概述
1 用户注册:用户必须注册账号并添加个人信息后才可登陆系统,根据不同的角 色,注册不同的角色账号。
2.查询医生:患者通过医生姓名或科室等关键字进行自定义查询。
3.预约医生:患者通过查询界面查询到合适医生后,对医生进行预约。
4.预约医生管理:患者预约医生后可对预约情况进行查询操作,查看主治医生信 息,个人病历信息,或对于预约情况进行撤销或修改操作。
5.预约患者管理:医生登陆系统后可查询当前预约的患者,并可以查看患者信息, 病历信息。
6.系统维护:管理员工作模块,可对系统中的医生信息进行管理或者添加新的医 生信息,修改医生工作时间,最大预约人数等等。
2.2.4 条件和限制
1.设计上:需满足医院门诊的基本需求,要求系统具有良好的扩展性。
2.时间上:要求系统至少运行 5 年。 19
3.实现上:硬件需求为内存 1G 以上,cpu酷睿i3 及以上,使用 Microsoft SQL Server 2006。
4.资金上:由小组收集并对目标医院使用方开展 ERP 活动
2.3 总体设计
2.3.1 总体处理流程图2-1 系统总体流程图
2.3.2 总体结构和外部设计
图2-2 系统的外部设计—总体结构图
2.3.3 功能分配
项目功能需求包括如下5个功能模块,基于下述5个功能模块进行功能划分。
2.3.3.1 用户管理模块
只有注册过的用户才可以使用系统,为欲使用系统的用户提供注册功能,注册成系统用户后方可使用系统,上传用户注册信息于数据库中。为系统用户提供登录功能,对数据库进行查询操作验证用户登录信息并验证系统用户类别,后跳转对应的用户界面。图2-3 用户管理模块活动图
2.3.3.2 医生账户管理模块
为医生用户提供查询预约情况和建立病历的功能,提供对后台数据库的查询和修改功能。图2-4 医生账户管理模块活动图
2.3.3.3 患者账户管理模块
为患者用户提供查询医生和查看预约情况的功能,对数据库进行查询操作以搜索医生信 息并跳转到预约管理界面,查询数据库查看预约情况,并可以进行修改,上传新的预约信息到数据库,支持撤销预约。
2.3.3.4 预约管理模块
为患者用户提供预约医生和查询预约人数的功能,通过查询要预约日期医生是否有排版来决定是否发放预约号,如果成功发放预约号,同时还要控制医生的预约人数不超过最大预约人数,对数据库进行查询操作以查询当前预约人数,控制上传预约信息到数据库以保证预约人数的合法性。图2-5 患者管理模块、预约模块复合活动图
2.3.3.5 管理员模块
为管理员用户提供向系统中添加医生信息和修改医生信息的功能。完成对数据库中的数据进行增删改查操作以完成对医生信息的管理。图2-6 管理员管理模块活动图
2.4 接口设计
2.4.1 外部接口
用户界面:采用窗口和菜单栏模式进行设计。
硬件接口: 1. 鼠标输入接口 2. 键盘输入接口 3. 触屏端输入接口 25
软件接口: 本系统适用于 Windows 2000、Windows 2003、Windows XP、Windows Vista、Windows 7、Windows 8、Windows 8.1、Windows 10 和 Windows Server 操作系统
2.4.2 内部接口
本系统使用面向对象编程语言,在 public 类中和接口中设计方法以供调用,类 之间实现严格封装
2.5 数据结构设计
2.5.1 逻辑结构设计图2-7 系统E-R图
2.5.2 物理结构设计
参考1.3.4数据字典中表1-1,表1-2,表1-3,表1-4,表1-5,表1-6。
2.5.3 数据结构与程序的关系1.排序算法:对患者预约顺序进行排序。
算法原理:选取第一个元素作为key,重新排序序列,所有比key下的放在前面,比key大的放在后面。在这个分区结束后,key就处于数列的中间位置。递归的把小于key的子序列和大于key的子序列排序。
例:设一待排序序列为(2,4,3,1)(如图 所示)。首先选区2作为key,排序后前面序列为(1),后面序列为(4,3)。继续递归后面序列,选取4为key,排序后序列(3)为前面序列。至此,排序结束。排序后序列为(1,2,3,4)。图2-8 排序算法原理说明图
2.正则表达式:判断输入的邮箱是否合法。
第一组(用户名)匹配规则:从0至9,A至Z,a至z,下划线,点,连接符中任意字符重复一遍或以上,中间一个@,第二组(域名)匹配规则:从0至9或a至z中任意字符重复一遍或以上,接着一个点,然后是a至z中任意字符重复两至三遍(如com,cn)。2.6 运行设计
2.6.1 运行模块组合
客户机程序在有输入时启动接受数据模块,通过各模块之间的调用,读入并对输入进行格式化。
参考图2-2
2.6.2 运行控制
运行控制将严格按照各个模块的函数调用关系来实现。在各事务中心模块中,需对运行控制进行正确的判断,选择正确的运行控制路径。
在网络传输方面,客户机在发送数据后,将等待服务器的确认收到信号。收到信号后,再次等待服务器发送回答数据,然后对数据进行确认。服务器在接到数据后发送确认信号,在对数据处理、访问数据库后,将返回信息送回客户机,并等待确认。
2.6.3 运行时间
在系统正常运作状态下,逻辑操作运行时间不超过0.5秒,查询数据类操作运行时间不超过2秒,系统响应时间最大值不多于半分钟。
2.7 出错处理设计
2.7.1 出错输出信息
1.输入信息无法满足要求所产生的错误
(1)登陆时发生错误
(2)注册成为管理员时验证码输入发生错误
(3)查询信息时输入发生错误
2.由于网络传输超时或其他问题所产生的错误
2.7.2 出错处理策略
1.客户机和服务器必须安装不间断电源以防止停电或电压不稳造成的数据丢失和损失。
2.在输入数据模块进行数据分析,判断错误类型,生成相应的错误提示语句,送到输出模块中。
(1)登录时发生多次错误时系统强制封锁该登录IP一段时间,防止其对系统进行暴力破解。
(2)注册成为管理员时验证码输入错误,系统将强制封锁该登录IP一段时间,防止其对系统进行暴力破解。
(3)查询信息错误时,系统即使提示用户信息发生错误并指导其纠正错误信息。
2.8 安全保密设计
1.账户接口:由于账户接口涉及重大隐私,输入密码时将输入键盘打乱,对访问对象进行严格限制。
2.数据传输:全部使用post传输方式,并进行md5校验,防止数据被劫持篡改。
2.9 维护设计
维护方面主要为对服务器上的数据进行维护。可使用SQL server的数据库维护功能机制。定期为数据库进行维护,维护管理数据库死锁问题和维护数据库内数据的一致性等。
3.1 引言
3.1.1 编写目的
本详细设计说明书目的是对该项目进行详细设计,在概要设计的基础上进一
步明确系统结构,详细地介绍系统的各个模块,为进行后面的实现和测试作准备。
本详细设计说明书的预期读者为本项目小组的成员以及对该系统感兴趣,在以后
想对系统进行扩展和维护的人员。3.1.2 项目背景
a. 委托单位:哈理工软件与微电子学院
b. 开发单位:软件 17-8班
c. 主管部门:软件八班第 3组
d. 待开发的软件系统的名称:医院门诊管理系统
3.1.3 定义
HRWeb:医院门诊管理系统
3.1.4 参考资料
A.需求规格说明书;
B.概要设计说明书;
C. 【1】约翰·W·萨茨辛格 罗伯特 B·杰克逊 史蒂芬 D·伯德 编 机械工业出版 社 系统分析与设计:敏捷迭代方法(第六版)3.2 总体
3.2.1 需求概述
为医院开发新的门诊管理系统,实现一个从信息收集、处理到查询的完整的处理方案。建立对应的数据库来将系统中的信息保存起来以方便查询。明确划分各系统使用者的权限,为患者提供查询医生和预约医生的功能,并能对自己的预约情况进行撤销和查看操作,让患者灵活的选择就诊医师。
为医生提供查询当前预约患者信息的功能,以便医生就诊前准备活动。
为管理员提供添加和修改医生信息的功能,以完成医师信息的不断更新。预约管理模块要监督预约过程以确定当前预约人数在医生可接诊的最大人数之内。
3.2.2 软件结构图3-1 系统总体结构图
图3-2 系统设计类图
3.3 程序描述
1 、用户管理模块 为欲使用系统的用户提供注册功能,注册成系统用户后方可使用系统,上传用户注册信息于数据库中。为系统用户提供登录功能,对数据库进行查询操作验证用户登录信息并验证系统用户类别,后跳转对应的用户界面。
2 、医生用户管理模块为医生用户提供查询预约情况和建立病历的功能,提供对后台数据库的查询和修改功能。
3 、患者用户管理模块为患者用户提供查询医生和查看预约情况的功能,对数据库进行查询操作以搜索医生信息并跳转到预约管理界面,查询数据库查看预约情况,并可以进行修改,上传新的预约信息到数据库。
4 、预约管理模块为患者用户提供预约医生和查询预约人数的功能,控制医生的预约人数不超过最大预约人数,对数据库进行查询操作以查询当前预约人数,控制上传预约信息到数据库以保证预约人数的合法性。
5 、管理员模块为管理员用户提供向系统中添加医生信息和修改医生信息的功能。完成对数据库中的数据进行增删改查操作以完成对医生信息的管理。3.3.1功能
一、用户管理模块
1. 用户注册:用户根据提示输入自己的账号、密码,然后再确定重新输入一次 密码,如果两次密码不一致需要重新输入,直到两次输入密码一致。系统将随机产生一验证码,如果用户看不清楚可以选择重新提取验证码,最后用户 正确输入验证码后注册成功,如要注册成管理员,需要额外认证专用验证码, 输入正确则成功。
2. 用户登录:用户正确输入自己的帐号、密码,如果帐号和密码错误系统会提示错误。图3-2 用户管理模块顺序图
二、医生用户管理模块
1.查询预约情况:医生可查看当前所有预约的患者,点击任一患者则可查看此
患者信息和病历,可修改病历,如若没有病历,可选择创建病历。
2.创建病历:医生根据提示输入患者病历信息,并保存。图3-3 医生用户管理模块顺序图
三、患者用户管理模块
1. 查询医生:患者选择查询医生功能后,根据提示选择查询方式,然后按照此查询方式根 据提示输入查询关键字,系统返回查询结果。
2. 预约医生:查询医生后,选择预约,并确认预约,如果此次预约动作合法则预约成功。
3. 查看预约情况:患者可点击查看当前自己的预约情况,在预约情况中显示预约单号,主治医师信息,和病历信息,可选择撤销预约。四、预约管理模块
此模块为辅助患者和医生用户管理模块同步预约操作而设计,在患者预约医生的同时监 督预约人数是否合法,并将患者信息和医生信息整合到预约单中展示给患者,将患者的预约 活动进行排队并展示给医生。图3-4 患者用户管理模块、预约管理模块复合顺序图
五、管理员模块
1. 添加医生信息:管理员根据系统提示将医生信息输入到系统中并保存,之后患者便可通 过查询操作查询到该医生。
2. 修改医生信息;管理员根据系统提示查询要修改的医生信息,返回查询结果后点击医生。
3.信息进行修改,用于及时修改不在班的医生信息和医生最大预约人数。图3-5 管理员管理模块顺序图
3.3.2 性能
1. 要求对用户个人信息保密。
2. 搜索的响应时间要在 2 秒以内。
3. 对医生的数据每一天更新一次。
4. 对于用户对医生的错误报告要5小时内进行相应处理。
5. 除就诊期间主治医师可查看病历,其他情况对患者病历保密。
3.3.3 输入项目
数据输入设备的选择:在输入设备的选择上,采用传统的键盘输入方式,这种方法成本低、速度快,适于大量数据的录入。
(1)注册/登录模块 用户按照要求输入用户名、密码。 注册用户按照要求输入患者个人信息。
(2)患者模块 若要预约,则先输入医生关键字进行查询。
(3)医生模块 若要修改病历,在选择要修改病历患者信息后,输入病历信息。
(4)管理员模块 若要添加医生信息,则输入要添加的信息。 若要修改医生信息,在选择要修改的医生之后,输入要修改的信息。
3.3.4 输出项目
(1)患者模块 输出查询的医生信息。 输出当前的预约单信息。
(2)医生模块 输出患者的信息和病历。
(3)管理员模块 输出要修改的医生信息。
3.3.5 算法
1.排序算法void quicksort(int s[], int l, int r){ if (l < r){ int i = l, j = r, key = s[l]; while (i < j){ while (i < j && s[j] >= key) j--; if (i < j) s[i] = s[j]; while (i < j && s[i] < key) i++; if (i < j) s[j] = s[i]; } s[i] = key; quicksort(s, l, i - 1); quicksort(s, i + 1, r); }
2.正则表达式
bool Regex_match(std::string email_address){ regex pattern("([0-9A-Za-z\\-_\\.]+)@([0-9a-z]+\\.[a-z]{2,3}(\\.[a-z]{2})?)"); if(regex_match(email_address, pattern)) return true; return false; }
3.字符串匹配算法
std::map
compute_prefix(const std::string &pattern){ int i = 1; int p = 0; std::map pi; int length = pattern.length(); pi.insert(std::make_pair(1, 0)); while(i < length){ if (p > 0 && pattern[i] != pattern[p]) p = 0; if (pattern[i] == pattern[p]) ++p; pi.insert(std::make_pair(i + 1, p)); i++; } return pi; } bool kmp_match(const std::string &text, const std::string &pattern){ std::map pos; pos = compute_prefix(pattern); int q = 0; for (int i = 0; i < text.length(); i++){ if (q > 0 && text[i] != pattern[q]) q = pos.at(q); if (text[i] == pattern[q]) q++; if (q == pattern.length()) return true; } }
3.3.6 程序逻辑
排序算法:参考图2-8。正则表达式:第一组(用户名)匹配规则:从0至9,A至Z,a至z,下划线,点,连接符中任意字符重复一遍或以上,中间一个@,第二组(域名)匹配规则:从0至9或a至z中任意字符重复一遍或以上,接着一个点,然后是a至z中任意字符重复两至三遍(如com,cn)。
3.3.7 接口
外部接口:
用户界面:采用窗口和菜单栏模式进行设计。
硬件接口:1. 鼠标输入接口 2. 键盘输入接口 3. 触屏端输入接口
软件接口:本系统适用于 Windows 2000、Windows 2003、Windows XP、Windows Vista、Windows 7、 Windows 8、Windows 8.1、Windows 10 和 Windows Server 操作系统
内部接口:
(1)用来查询一条数据的私有接口
(2)增加信息的公共接口
(3)查询信息的公共接口
(4)修改信息的接口
(5)导出信息的接口
3.3.8 限制条件
1.服务器容量需要根据医院实际条件(接诊人数)来确定大小。
2.网络传输速度,如若部署在 web 端上则需要良好的网络状况。
3.3.9 测试要点
可靠性: 系统应保证 24 小时内不当机,系统正常运行,正确提示相关内容,满足工作人员的应用需要。
健壮性:
a、系统运行时,应该具有一定的容错能力,而且一般的非正常操作不应该影响系统的正常使用。
b、一旦系统崩溃或出现故障导致系统不能运行,在正常的工作日,应该能够在最多 5 个小时内回复系统正常运行。
c、在突然断电或者发生系统故障时在后台可以进行数据的存储处理。非正常要求下在格式化处理的时候都进行数据的备份。
可扩展性:
系统设计要求能够体现扩展性要求,以适应将来功能扩展的需求。
维护设计:
作为一个成熟的软件产品,办公自动化系统必须按照面向对象的软件工程的步骤进行开发,并充分考虑软件可维护性,软件的模块划分应满足高内聚、低耦合的特点,同时程序的内部必须有详细的注释和统一的编码格式、按时认真地进行相应文档资料的撰写和备份工作,以有利于未来版本升级及移植等二次开发。
系统安全性:
系统有严格的权限管理功能,各功能模块需有相应的权限方能进入。系统需
能够防止各类误操作可能造成的数据丢失、破坏,并提醒用户及时保存新信息。