基于JSP的网上处方跟踪系统含源文件.docx
- 文档编号:28978014
- 上传时间:2023-07-20
- 格式:DOCX
- 页数:65
- 大小:1.64MB
基于JSP的网上处方跟踪系统含源文件.docx
《基于JSP的网上处方跟踪系统含源文件.docx》由会员分享,可在线阅读,更多相关《基于JSP的网上处方跟踪系统含源文件.docx(65页珍藏版)》请在冰豆网上搜索。
基于JSP的网上处方跟踪系统含源文件
长沙理工大学
《软件工程综合课程设计》报告
基于JSP的网上处方跟踪系统
专业:
软件工程
班级:
姓名:
报告日期:
2016年6月30日
目录
1背景与意义
1.1背景与现状
1.2趋势与前景
1.3工作基础、条件与优势
2需求分析
2.1功能与性能需求
2.2其它需求
3内容和目标
3.1主要内容
3.2预期目标
4技术路线
4.1总体功能
4.2运行平台具
4.2.1网络环境
4.2.2设备情况
4.2.3支撑软件
4.3程序语言与开发工具
4.4关键技术
5进度计划
6条件、假定和限制
7系统设计与原型UI(或系统设计与实现)
7.1数据库表设计
7.2关键算法与实现技术
7.3主要原型UI(或主要功能实现)
7.4测试方案与测试用例
7.5安装与运行情况
7.5.1安装与配置
7.5.2运行情况图
8总结
参考文献
附件:
主要功能的源代码
1背景与意义
1.1背景与现状
随着互联网不断的发展,计算机已经深入到了各行各业,计算机不再局限于对科学技术的研究,当今时代,计算机可以决解大部分的具体问题,而且有利于人们的控制,这大大方便了人们的需求。
当今的中小型医院中一般还没有全面采用信息技术来进行管理,所以建议一套计算机辅助经营管理系统是必不可少的。
本系统是专门为处方专门设计的,我们知道,传统的记录使用手工的方式来记录数据,但是如果用手工的方式记录数据,如果数据量很大,那么结果往往就很容易出错;而且,随着时间的积累,数据变得越来越多,且容易丢失,传统的手工管理极大的浪费了人力和财力,不能满足医师和医院之间的需求。
总的来说,使用一个高效率的系统来处理这些繁杂的流程是必须的,所以我们有必要建立一个处方跟踪系统来处理这一系列的问题,让医师可以通过系统方便的记录病史症状,开处方,查阅历史处方,保存。
通过这样,这些数据能被即使、准确、有效的处理。
这不仅可以提高工作效率还可以确保信息的安全和准确。
1.2趋势与前景
目前,国内的大多数医院均不同程度的将计算机技术应用于医院管理。
该系统对软件没有太高的要求,市场上已存在各式各样的软件足以满足各方面的要求。
但是不同软件之间由于需求的不一致或者是根据不同的政策标准难以实现软件统一化,现在医疗行业飞速发展,国家政策不断的推陈出新也使软件的开发出现多样化,模块的多样化造成了维护原有系统上的困难,传统的软件业务有的已经也不符合当今的要求,所以开发一款符合当今社会需求的软件是有必要的。
1.3工作基础、条件和优势
(1)技术可行性
该系统对软件没有太高的要求,但是开发人员必须具有该软件开发的专业知识,已经开发过相关的医学管理系统,在熟悉业务的情况下进行开发,完善更多的功能业务。
(2)经济可行性
该软件的开发成本较低,在有前人开发的经验中开发风险小,系统投入运行后会给医院带来可观的经济效益:
一方面提高了工作效率,增加了市场竞争力。
另一方面,所需要的人员减少也提高了经济效益。
(3)人才设备可行性
对于针对医疗行业软件开发的人员是相当多的,在设备方面同样比较容易进行,所以在人才设备上是可行的。
2需求分析
2.1功能和性能需求
功能需求:
处方管理系统的构建是以医师处方为中心,实时录入病人信息,开处方,生成处方,进行数据的统计,简化了传统处方信息处理的过程。
本系统的重点是跟踪处方的信息数据并处理数据,处理数据时相关的数据对象有如下有以下:
(1)系统跟踪每位顾客的以下信息:
顾客姓名、电话号码、出生日期、承保公司、保险号、处方历史记录
(2)每位顾客的服药史将记录下列每次处方信息:
由药房给出的唯一的处方ID号、处方开出的药物、开处方的医生姓名和电话号码、处方日期、处方终止日期、有效购药次数、配药“单位”数量(此处的“单位”可能是片、匙和毫升等———见后面关于药品的讨论)、如果有其它替代品,是否可以向顾客提供替代品。
(3)对于药房存货的每种药品,系统应跟踪的如下:
药品名称,药品“单位”(片、匙和毫升等),哪些其它药品可以作为另一种这种药品的替代品,服用药品可能引起的副作用。
(4)系统所支持的查询功能:
服药史,即给定顾客的所有处方历史记录—根据顾客的要求提供的报告,某种给定药品的副作用报告,随处方一起提供某种给定药品的可替换药品列表一份给定处方是否还有购药许可:
即,是否还可以凭处方购药,以及处方是否已经过期。
性能需求:
(1)时间特性要求
服务器启动时间不超过1分钟;系统响应时间:
用户在使用软件的过程中对各个功能模块中的鼠标点击、键盘输入等操作响应的时间不操作1秒。
(2)数据精度
要按照严格的数据格式输入,对符合数据格式要求的输入进行提示。
(3)服务器并发和可伸缩性
软件应采用界面层、应用程、数据层三层架构,若以后用户数量增多,只需要增加应用层的服务器数量,实现可裁减、可扩充和可移植等不同方面的要求。
采用模块化的应用软件结构,确保系统可以灵活的扩充其业务功能,并可与其他业务系统进行无缝连接。
(4)系统安全性
数据库设计阐明使用何种方式保证系统的安全。
2.2其它需求
可靠性和可用性需求:
出错处理需求:
接口需求:
Mysql、Soap、
约束需求:
暂无
逆向需求:
暂无
将来可能的需求:
3内容和目标
3.1主要内容
(1)用户信息维护,实现用户信息的录入、查询、修改以及删除等功能。
(2)处方信息处理,针对不同的用户记录用户的处方信息,其中处方信息中记录处方开出的药物、开处方的医生姓名和电话号码、处方日期、处方终止日期、有效购药次数、配药“单位”数量(此处的“单位”可能是片、匙和毫升等———见后面关于药品的讨论)、如果有其它替代品,是否可以向顾客提供替代品等信息,并可对该处方进行修改以及删除等操作。
(3)处方历史查询,查询所有的处方信息,或者根据用户的信息模糊查询到该用户的处方信息。
(4)处方药物信息处理,药方根据处方信息处理药物并确认处理。
3.2预期目标
系统必须根据需求实现核心业务上的需求内容,系统必须严格按照说明书上来开发,最终的系统必须达到需求说明书上的要求,实现一个可靠的、易用的处方跟踪系统,该系统实现了对用户信息、处方信息的一体化处理。
4技术路线
4.1总体功能
图4.-1-1总体功能结构图
图4.-1-3系统数据流图
4.2运行平台
4.2.1网络环境
局域网网络环境以及私有的IP地址
该局域网的网拓扑结构如图4-2-1-1所示:
图4-2-1-1网络拓扑图
4.2.2设备情况
服务器端:
处理器主频
1000MHz
内存容量
64GB
主机型号与数量
PA-8800/2
外存容量
16GB
设备型号与数量
惠普9000rp7420/2
输入及输出设备型号与数量
L455有线多媒体键盘/1、S22B360HW显示器/1、N215鼠标/1
数据通信设备型号与数量
交换机华为S1724G/1
其他专用硬件设备与数量
无
客户端:
处理器主频
不限定
设备的型号与数量
不限定
主机型号与数量
不限定
外存容量
不限定
设备型号与数量
无
输入及输出设备型号与数量
交换机华为S1724G/1
数据通信设备型号与数量
无
其他专用硬件设备与数量
无
4.2.3支撑软件
支撑软件
软件
版本
操作系统
Linux
linuxredhat5.6以上,内核版本kernel-2.6.18-238.el5
数据库管理系统
Mysql
5.1
Web服务器
Tomcat
7.0
浏览器
Chrome
46.0.2490.86
其他软件
JVM
1.7
4.3程序语言与开发工具
程序语言:
HTML/CSS、JavaScript、Jquery、Java、Jsp、Jstl、Spring、SpringMVC、Hibernate、SpringDataJpa、Mysql
开发工具:
SpringToolSuit3.7、Maven3.3、Mysql5.1、Tomcat7.0、JavaRuntimeEnviroment1.7、Git项目管理工具
4.4关键技术
(1)HTML5WebSocketAPI客户端与服务器端进行全双工通讯,WebSocket的出现是基于Web应用的实时性需要而产生的,它允许客户端和服务器在任意时刻互相推送消息。
WebSocket是下一代客户端-服务器异步通讯的方法,它本事上任然是一个基于TCP的协议,它使用ws或wss协议,可用于任意的客户端和服务器。
为了建立一个WebSocket连接,客户端浏览器首先要向服务器发起一个HTTP请求,这个请求和通常的HTTP请求不同,包含了一些附加头信息,其中附加头信息”Upgrade:
WebSocket”(”Upgrade:
WebSocket”表示这是一个特殊的HTTP请求,请求的目的就是要将客户端和服务器端的通讯协议从HTTP协议升级到WebSocket协议。
)表明这是一个申请协议升级的HTTP请求,服务器端解析这些附加的头信息然后产生应答信息返回给客户端,客户端和服务器端的WebSocket连接就建立起来了,双方就可以通过这个连接通道自由的传递信息,并且这个连接会持续存在直到客户端或者服务器端的某一方主动的关闭连接。
它的通讯方式如下:
图4-4-1客户端和服务器websocket通讯。
图4-4-1客户端和服务器websocket通讯
(2)HighChats一套由纯Javascript写的表现层框架,它提供曲线、面积、柱形图、条形图、饼图、散点图、区域范围图、气泡、漏斗等等一系列的图形表现形式。
HighChars不需要像Flash和Java那样需要插件才可以运行,而且运行速度快,它是轻量级的JavaScript脚本,它使用的是json数据格式,数据传输更加方便,而且它的数据是在客户端解析的,减轻了服务器的压力,所以它比JFreeChart更方便(JFreeChart是JAVA平台上的一个开放的图表绘制类库。
它完全使用JAVA语言编写在我看来JFreeChart有点笨重了,而且它生成的图形也比HighChart少,并且好像是收费的)。
另外HighCharts还有很好的兼容性,能够完美支持当前大多数浏览器。
(3)SpringDataJPA提供了一整套数据访问层(DAO)的解决方案,致力于减少数据访问层的开发量,并支持云服务的开源框架。
SpringData作为SpringSource的其中一个父项目,旨在统一和简化对各类型持久化存储,而不拘泥于是关系型数据库还是NoSQL数据存储。
无论是哪种持久化存储,数据访问对象(或称作为DAO,即DataAccessObjects)通常都会提供对单一域对象的CRUD(创建、读取、更新、删除)操作、查询方法、排序和分页方法等。
SpringData则提供了基于这些层面的统一接口(Repository、CrudRepository、PagingAndSortingRepository、JpaRepository)以及对持久化存储的实现。
JPA(JavaPersistenceAPI,Java持久化API)是sun提出的一个对象持久化规范,各JavaEE应用服务器自主选择实现,JPA的底层实现是一些流行的开源ORM(对象关系映射)框架(如Hibernate、OpenJPA、TopLink、Ibatis等等),因此JPA其实也就是java实体对象和关系型数据库建立起映射关系,通过面向对象编程的思想操作关系型数据库的规范。
JPA,定义了对象-关系映射以及实体对象持久化的标准接口。
如下图:
图4-4-2JPA在应用程序中的位置:
图4-4-2JPA在应用程序中的位置
SpringDataJpa是SpringData对JPA提供的一套解决方案。
SpringDataJpa实现了大部分的持久层的逻辑代码,你需要做的只是声明持久层的接口,其他的都交给SpringDataJpa完成。
SpringDataJpa中Repository是一个空接口,CrudRepository:
继承Repository,实现了一组CRUD相关的方法,PagingAndSortingRepository:
继承CrudRepository,实现了一组分页排序相关的方法,JpaRepository:
继承PagingAndSortingRepository,实现一组JPA规范相关的方法。
相关技术方案参考SpringData实战的书籍[2]。
SpringDataJpa提供的接口如下图4-4-3SpringDataJpa提供的接口图:
图4-4-3SpringDataJpa提供的接口图
(4)SpringMVC,SpringWebMVC是一种基于Java的实现了WebMVC设计模式的请求驱动类型的轻量级Web框架,即使用了MVC架构模式的思想,将web层进行职责解耦,基于请求驱动指的就是使用请求-响应模型,框架的目的就是帮助我们简化开发,SpringWebMVC也是要简化我们日常Web开发的。
它的请求处理流程图如下:
图4-4-2springMVC请求处理流程图
前端控制器首先接收到用户的请求,前端控制器根据接收的请求信息把请求委托给页面控制器来处理。
处理器接收请求后调用相应的业务对象处理请求,如果有数据库操作会向数据库请求数据,并返回一个模型视图(一般是ModelAndView),返回的模型经过视图解析器把,模型数据解析到页面中并返回给客户端。
SpringMVC充分对模型、视图、控制器进行充分的解耦,并利用SpringIOC的功能更加方便管理。
相关技术方案参考SpringMVC学习指南的书籍[1]。
(5)REST风格URL,REST架构风格是全新的针对Web应用的开发风格,是当今世界最成功的互联网超媒体分布式系统架构,它使得人们真正理解了Http协议本来面貌。
随着REST架构成为主流技术,一种全新的互联网网络应用开发的思维方式开始流行。
REST是基于Http协议的,任何对资源的操作行为都是通过Http协议来实现。
以往的Web开发大多数用的都是Http协议中的GET和POST方法,对其他方法很少使用,这实际上是因为对Http协议认识片面的理解造成的。
Http不仅仅是一个简单的运载数据的协议,而是一个具有丰富内涵的网络软件的协议。
他不仅仅能对互联网资源进行唯一定位,而且还能告诉我们如何对该资源进行操作。
Http把对一个资源的操作限制在4个方法以内:
GET,POST,PUT和DELETE,这正是对资源CRUD操作的实现。
由于资源和URI是一一对应的,执行这些操作的时候URI是没有变化的,这和以往的Web开发有很大的区别。
正由于这一点,极大的简化了Web开发,也使得URI可以被设计成更为直观的反映资源的结构,这种URI的设计被称作RESTful的URI。
基于RESTURL风格的请求方式如下:
图4-4-2基于RESTURL风格的请求
5进度计划
说明本项目的进度要求,参照软件工程的三个时期中的八个
阶段
时间安排
问题定义
3日
可行性分析
2日
需求分析
5日
总体设计
5日
详细设计
10日
编码和单元测试
15日
综合测试
5日
软件维护
5日
操作培训
3日
验收测试
2日
项目验收
2日
总计为57天
6条件、假定和限制
(1)建议开发软件开发投入的时间:
两个月
(2)经费来源及限制:
由需求方提供
(3)软件的预期寿命:
两年
(4)网络环境:
局域网
(5)运行环境:
mysql5.1,JavaRuntimeEnviroment1.7及以上版本
(6)客户端环境:
InternetExplorer8.0及以上的版本
(7)硬件设备:
处理器InterPentinm3或者更高,内存至少256M以上,硬盘至少2G
(8)平台:
linuxredhat5.6以上,内核版本kernel-2.6.18-238.el5
(9)法律和政策:
遵守相关的法律法规,以保护用户的隐私为前提开发软件
7系统设计与原型UI(或系统设计与实现)
7.1数据库表设计
1)数据库名:
Prescription
数据库管理者账号:
root密码:
root
账号操作权限:
CREATE、DROP、DELETE、INSERT、UPDATE、SELECT、ALTER
2)User表:
记录用户的基本信息。
表User(用户表)用于保存用户的基本信息
字段名
数据类型
长度
主键
描述
Id
Int
11
是
用户编号
Name
Varchar
64
否
用户姓名
Telephone
Varchar
20
否
电话号码
Birthday
Data
10
否
出生日期
insurance_company
Varchar
32
否
承保公司
Policy_number
Varchar
64
否
保单号
表7-1-1User表
Department表:
部门表,医师所属部门。
表Department(部门表)用于保存医师的部门
字段名
数据类型
长度
主键
描述
Id
Int
11
是
部门编号
Name
Varchar
64
否
部门名称
表7-1-2Department表
Position表:
医师所属职位。
表Position(职位表)用于保存医师的职位信息
字段名
数据类型
长度
主键
描述
Id
Int
11
是
职位编号
Name
Varchar
64
否
职位名称
表7-1-3Department表
Doctor表:
医师基本信息,包括两个外键,表示医师所属的部门和职位。
表Doctor(医师表)用于保存医师的基本信息
字段名
数据类型
长度
主键
描述
Id
Int
11
是
医师编号
Name
Varchar
64
否
医师姓名
Telephone
Varchar
20
否
电话号码
Did
Int
11
否
医师所属部门
Pid
Int
11
否
医师所属职位
表7-1-4Doctor表
Prescription表:
处方信息表,记录处方基本信息以及两个外键,一个是该处方所属的用户,另一个是处方所属医师。
表Prescription(处方信息表)用于保存处方的基本信息
字段名
数据类型
长度
主键
描述
Id
Int
11
是
处方编号
Uid
Int
11
否
该处方所属用户
Did
Int
11
否
该处方所属医师
BeginDate
Date
16
否
处方日期
EndDate
Date
16
否
处方终止日期
CrawlAgainst
Int
4
否
再次抓药的次数
表7-1-5Prescription表
PrescriptionDetail表:
处方详细信息表,记录一个处方中多个处方详细信息记录,两个外键,一个表示该处方详细所属的处方,另一个表示该处方详细中具体的药物信息。
表PrescriptionDetail(处方详细信息表)用于保存处方的具体的信息
字段名
数据类型
长度
主键
描述
Id
Int
11
是
处方详细编号
Count
Int
4
否
数量
Canuse
String
16
否
是否可用替代药品
Take_method
String
255
否
服用的方式
Unit
String
16
否
单位
Mid
Int
11
否
药物的编号
Pid
Int
11
否
处方的编号
表7-1-6PrescriptionDetail表
Medicine表:
记录药物的基本信息。
表Medicine(药物信息表)用于保存药物的信息
字段名
数据类型
长度
主键
描述
Id
Int
11
是
药物的编号
Name
String
64
否
药物的名称
Sideeffect
String
255
否
副作用
表7-1-7Medicine表
Subtitute表:
药物可替代的药品表,每个药物如果有可替代的药物,那么该药物将会维持一份药物替代表,其中两个字段都是外间,一个是指向具体的某个药物,另外一个是指向可替代药物的id编号。
表Subtitute(药物替代表)用于保存药物的可替代药物的信息
字段名
数据类型
长度
主键
描述
M_id
Int
11
是
药物的编号
S_id
Int
11
是
药物的标号
表7-1-8Subtitute表
数据库总体UML如下图7-1-9数据库UML
图7-1-9数据库UML
数据库设计相关技术方案参考据库设计与关系理论[4]与数据库设计与应用开发实践[5]。
3)无,由于使用了springdatajpa操作数据库,springdatajpa简化了数据库访问的操作。
7.2关键算法与实现技术
1.系统难点:
添加一个处方信息可一次性提交多个处方详细信息(相当于每次开药方包含多种药物,每种药物的数量也不一致),每个处方详细信息中又包含了基本信息以及药品对象。
为了解决该问题,每次选择和填好一种药物后都实用ajax保存到服务器上的session中,当然,在服务器上建立了两个类来暂时存放这些数据,分别是PrescriptionDetailOperator和PrescriptionOperator两个类。
classPrescriptionDetailOperator{
privateintcount;//每个药品的数量
privateStringunit;//每个药品的单位
privateMedicinemedicine;//该药品的对象
privateStringtakeMethod;//服用方法
privateStringcanuse;//是否可以实用替代药品
//省略getter和setter方法
}
classPrescriptionOperator{
//声明一个map来保存多个PrescriptionDetailOperator对象,实用药品的id作为主键
privateMap
newLinkedHashMap
publicCollection
returnmap.values
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 JSP 网上 处方 跟踪 系统 源文件