医院收费管理系统.docx
《医院收费管理系统.docx》由会员分享,可在线阅读,更多相关《医院收费管理系统.docx(38页珍藏版)》请在冰豆网上搜索。
医院收费管理系统
NIIT项目
医院收费管理系统
一、项目开发文档
(1)
1项目需求分析
(1)
2概要设计(4)
3详细设计(8)
4项目文档清单(12)
5项目命名约定(13)
6项目测试()
二、项目开发进度(14)
三、项目成果软件(15)
四、软件安装使用说明(18)
五、项目总结(19)
附录1项目成果软件代码(20)
一、项目开发文档
1项目需求分析
1.1引言
开发一个医院收费管理系统
医院收费系统是医院管理系统的最终端的一个模块,它处于整个医院管理系统的最末端,可以说是整个系统的信息入口。
要从收费系统中提取并保存所需信息。
与它并行的有住院管理系统,药库管理系统,之上,还有人事管理系统,后勤管理系统,最高端是院长查询系统。
完整的医院收费管理系统应该包括的功能有:
药品划价,门诊收费,处方的查询,收费项目的查询,其中,查询功能都需要从几个方面来考虑:
医生,病人,科室,操作员,药房,并能完成相应的统计功能。
本软件是利用NetBeans5.5设计开发的医院收费信息管理系统,是医院信息系统的一个重要组成部分,可实现对医院收费信息的分类管理和数据分析,从而使信息整理快速、准确、简单,以便于相关部门给予统筹安排,从而提高改进传统的管理方法,提高医院收费管理水平。
系统管理模块:
此模块是系统的主要模块,主要完成用户的注册、删除和密码修改以及用户的权限设置和系统初始化。
添加功能:
将新收集到的数据资料增加到知识管理数据库中,可以为其设
置各种属性,包括资料的收集时间,入库时间,资料格式,大
小,所属类别,与其他资料的关联性,以及该资料的摘要等。
修改功能:
可以修改数据资料的各种属性,存储位置等。
删除功能:
将不需要的数据资料从数据库中清理掉,以保证数据库有足够
空间存放新的资料。
结算功能:
根据数据资料对病人的医疗费用进行结算
资料查找:
可以按照特定的资料属性,如资料的名称,收集时间,入库时
间,类别等从数据库中查出所需要的各类资料。
显示摘要:
当鼠标单击选中文件资料时,可以在摘要栏内看到该文件的内
容简介,如果是图片,能看到预览效果。
打开资料:
选择要打开的文件,系统会自动调用该文件相应的程序来打开文
件。
1.2可行性分析
1.系统可行性:
在医院收费系统的可行性分析过程中,利用SQLServer数据库所具有的能力,以最简洁最容易的方法,对入院登记、费用记帐、出院结算等属性进行增加、修改、删除、查询。
可以安全高效地存储病人资料和操作员资料。
使用Java/JSP应用程序编程,这有利于医院收费管理员有效的对医院信息的管理。
收费管理系统的规模、设备状况、维护和修改系统程序,都需要相关的操作人员。
对于医院的运行更加的准确、全面、及时和详实。
2.技术可行性:
系统采用的是MVC模式,是目前j2ee中比较流行的一种模式。
MVC:
model,view,control表示,如果软件需要用到UI界面,那么就应该分成:
模型层,表示层,控制层三层,它是一个复杂的架构模式,其实现也显得非常复杂。
但是,我们已经终结出了很多可靠的设计模式,多种设计模式结合在一起,使MVC模式的实现变得相对简单易行。
Views可以看作一棵树,显然可以用CompositePattern来实现。
Views和Models之间的关系可以用ObserverPattern体现。
Controller控制Views的显示,可以用StrategyPattern实现。
Model通常是一个调停者,可采用MediatorPattern来实现。
随着网络应用的快速增加,通过在ASP.NET中的MVC模式编写的,具有极其良好的可扩展性。
MVC模式对于Web应用的开发无疑是一种非常先进的设计思想,无论你选择哪种语言,无论应用多复杂,它都能为你理解分析应用模型时提供最基本的分析方法,为你构造产品提供清晰的设计框架,为你的软件工程提供规范的依据。
3.使用可行性:
使用到局域网连接技术、JSP/NetBean5.5开发技术、SQLServer2005服务器端的T-SQL语言数据库开发技术,这些都是非常成熟的技术。
项目开发在技术方面采用Java/JSP应用程序编程与数据库相结合方法来实现。
要求所有数据信息的储存都由数据库来完成。
1.3运行环境
设备:
资料数据库服务器(可选择笔记本或台式机)
台式机最低配置:
英特尔奔腾4处理器2.6GHz,256兆内存,硬盘120G,CD-RW+DVD光驱;
推荐配置英特尔奔腾4处理器3.06GHz,512兆内存,硬盘160G,DVD刻录光驱。
一般计算机外设:
打印机、扫描仪等。
如要配置网络环境,还需网络连接设备。
软件支持本系统运行过程中会需要调用打开相应数据资料的各类软件,具体要视资料的类型而定,一般为SQL数据库。
接口:
用户接口:
本系统在Windows系统下运行。
对各类文件的打印,系统将通过调用打开相应文件的程序来完成。
输出、输入的响应时间将由电脑本身处理速度来决定。
1.4功能描述
医院收费管理系统功能需求描述如下:
不同的操作元可以按自己的用户名和密码登录到相应的界面。
可以使用本系统完成查询病人资料,收费记录和打印相关账单等功能。
操作员可以修改自己的账户名及密码(提高用户的安全性)。
本系统要符合医院的标准,满足医院收费的工作需求,并要达到网页界面具有良好的交互性,使得页面直观,友好,方便,安全。
系统具备基本的数据库维护功能,根据用户的需求能进行相关的增加,删除,修改,更新功能。
具体功能实现如下:
入院登记功能:
添加病人资料,查询病人资料。
费用记账功能:
查询费用,增加费用结账出院功能:
计算医药治疗费用的总额,并要打印出消费账单。
系统管理功能:
添加新用户,修改密码。
使用帮助,关入本医院的信息描述医院功能分析收费管理系统是一套对医院门诊的收费开票、门诊处方、药品管理、门诊收费明细统计查询等进行全面管理的系统。
该系统包括门诊收费(收费开票、退款);门诊处方(门诊处方发药、收费工作当日汇总表);药品管理(药品入库、药品基本信息设置、药品库存明细);门诊收费明细统计查询(俺接诊医师统计查询、按收费名称统计查询、按收款人统计查询、按病人姓名查询)系统维护(期间设置、经办人信息、医师信息、药品单位信息、科室表、门诊费用表)。
系统可行性:
本系统将在WINDOWS平台下做开发,并且采用NETBEANS5.5集成开发环境,TOMCAT作为JSP/SERVLET运行容器,SQL2005为WEB服务器.
技术可行性使用到局域网连接技术、使用JSP,SERVLET,JAVABEAN,JSTL,EL技术开发、SQLServer2005服务器端的T-SQL语言数据库开发技术,这些都是非常成熟的技术。
2概要设计
2.1引言
医院收费管理系统的功能需求描述,可以完成查询病人资料,收费记录和打印费用清单等功能。
具备数据库维护功能,根据用户要求及时进行数据的添加、删除、修改和备份等操作。
符合医院的规定,满足医院收费工作的需要,并达到操作过程的直观、方便、实用、安全等要求。
2.2系统功能模块图
数据库设计
需求分析
经过仔细分析调查有关医院收费信息需要,用户的需要主要体现在各种信息的提供、保存、更新和查询,这就要求数据库结构能充分满足个种信息的输入和输出。
医院的业务流程如下:
前面已经理解了医院收费管理系统的总体框架,至此对医院收费管理系统熟悉了,接下来就可以根据这些分析定义所需的数据字典、定义数据库的实体、定义实体间的联系,数据字典定义如下:
数据项
1.数据流
本系统流程分析如下图所示
2.概念设计
数据库逻辑设计是根据数据库的要领设计和数据库管理系统特征导出数据库的逻辑结构,也就是通过需求分析的结果进行设计,并通过完整的设计方法产生数据库管理系统可以处理的规范化的和优化的数据库逻辑模式和子模式,并相应定义逻辑模式上的完整性约束,安全性约束、函数依赖及关系和操作任务对应关系,逻辑设计是数据库设计过程中非常重要的步骤,它的设计结果将直接影响到最终形成的物理数据库及系统的成败。
在逻辑设计过程中,要用到许多设计理论和设计方法。
实体联系模型是P.PChen于1976年提出来的,ER模型中的基本语义单位是实体和联系,它可以形象的用图形来进行表示,称为ER图。
ER图是直观表示概念模型的有力工具。
在ER图中,以矩形框来表现实体类型(既考虑问题的对象),用菱形框表示联系类型(及实体之间的联系),用椭圆来表示实体类型和联系的属性,相应的名字均记录在框中。
联系类型与其涉及的实体类型之间用直线连接,并在直线端部标注联系的种类(1:
M,M:
N或者1:
1)ER模型有两个明显优点:
1、接近人的思想,容易理解;2、与计算机无关,用户容易接受。
数据库结构示意图
3详细设计
3.1E-R图
医院收费管理系统E-R
3.2用例图
3.3表结构
1.门诊收费记录表Checkproject
字段名称
数据类型
说明
C_id
数字
收费记录编号
R_id
数字
门诊登记编号,与表Registration中的R_id字段对应
P_id
数字
收费项目编号,与表Project中的p_id字段以及表Medicine中的M_id字段对应
P_count
数字
收费项目数量
P_type
数字
收费项目类型
1—中药
2—西药
3—其它
2.处方表
字段名称
数据类型
说明
lid
type
姓名
1
Af0003
徐晓
2
Cf2003
张凡
3
A10002
李四
4
Vl2005
王五
3.药品信息表yaopin
字段名称
数据类型
说明
Pid
阿司匹林
6
1
白加黑
5
2
感康
5
3
青霉素)
3
4
红霉素)
4
4.患者信息表patien
字段名称
数据类型
说明
P_id
数字
患者编号
P_name
字符(20)
患者姓名
P_sex
字符
(2)
性别
P_age
数字
年龄
P_address
字符(200)
地址
P_job
字符(50)
职业
5.收费项目表Project
字段名称
数据类型
说明
P_id
字符(20)
收费项目编号
P_name
字符(50)
收费项目名称
P_count
数字
库存数量
P_unit
字符(20)
计量单位
P_price
数字
进货单价
P_saleprice
数字
销售单价
P_producer
字符(100)
生产厂家
6.门诊登记表Registration
字段名称
数据类型
说明
R_id
数字
登记编号
P_id
数字
患者编号
R_pay
数字
收取金额
R_all
数字
应收金额
R_date
日期
登记日期
R_earn
数字
利润
Userid
数字
操作用户编号
D_id
数字
医生编号
7.用户信息表Users
字段名称
数据类型
说明
Userid
数字
用户编号
Username
字符(20)
用户名
Usertype
数字
2—普通用户
Pwd
字符(40)
密码
Empname
字符(40)
用户姓名
在创建表users的时候,将默认的用户admin插入到表中,默认的密码为“admin
4项目文档清单
Hospital:
项目名称
model.shoufei.javamodel中的shoufei.java文件该文件是一shoufeiJAVABEAN.文件中创建了相应的javabean对象和属性以及方法.
ShoufeiDAO.java从数据库中查询费用信息。
model.ShoufeiService.java与ShoufeiDAO.java相对应,ShoufeiDAO.java中有几个方法,则此文件就与之对应,这里是一个一个费用查询。
model.user.java该文件用来描述用户登录的.,该文件是一个javabean
modeUserDAO.java对用户登录的登录惊醒验证,包括用户名,密码,以及权限
model.UserService.java这个java类对应modeUserDAO.java,对用户登录进行处理
model.shuruDAO.javashuruDAO.java向数据库中插入一条或多条记录
controller.DeleteShou.java通过该文件,可以在前台实现对后台数据库的信息删除功能。
controllerLoginServlet.java.这是一个登录servlet,对用户登录的登录进行验证,包括用户名,密码,以及权限。
view.ShoufeiForm.java这是一个ShoufeiForm表单的验证。
5项目命名约定
类名:
大写字母开头如:
Hospital
类属性:
采用匈牙利命名法(即第一个字母小写并表明数据类型)如:
usename
类方法:
每个单词均为大写字母开头如:
Type
描述
示例
a
Array
aMonths
c
Character
cLastName
y
Currency
yCurrentValue
d
Date
dBirthDay
t
Datetime
tLastModified
b
Double
bValue
变量:
采用匈牙利命名法(即第一个字母小写并表明数据类型)
环境变量:
如:
类型
描述
示例
c
字符
Customer.cLastName
d
日期
Customer.dBirthDay
t
日期时间
Customer.tLastMod
b
双精度
Customer.bRate
f
浮点
Customer.fValue
g
通用
Customer.gPicture
l
逻辑
Customer.lSellMail
m
备注
Customer.mComments
y
货币
Customer.yYearTDate
n
数值
Customer.nItems
I
整型
Customer.iCustID
6项目测试
二项目开发进度
4-14,4-15
为项目做需求分析可行性分析,拟定初步的文档。
4-16,4-17
找登陆界面的各种素材,包括图片及按钮等。
4-18,4-19
编写登陆页面程序,使得登陆功能得到实现。
4-20,4-22
找主页的图片,并搭建主页的框架。
4-23,4-24
创建应用程序所需的数据库和表。
并使程序能成功连接到数据库。
4-25,4-26
实现对数据库删除,插入以及查询等基本功能。
4-27,4-28
再对网站的页面实现美化以及对文档进行完善。
4-29,4-30
对整个项目进行调试和总结。
三项目成果软件
1.我们的登陆的界面;
2.项目中要使用的数据表
3.基本的查询功能展示;
4.数据信息的插入
5.信息的查询
6.我们的联系式;
四软件安装使用说明
1.使用的neatbeans5.5集成开发环境。
2数据库使用的SQL2005.
五项目总结
医院收费管理系统采用目前比较流行的MVC模式,NetBeansIDE5.5作为前端开发工具,后台数据库管理系统为SQLServer2005,系统的运行平台为Windows。
项目是从4月中旬开始实施的,4月底完成。
需求分析,编码和单元测试由所有的小组成员共同完成。
由于有明确的分工,我们在开发过程的责任比较明确。
但毕竟我们项目经历很少,实践的过程中也遇到了不少困难。
特别是在编码的时候,很多内容都需要我们自己摸索,由于每个人的基础不一样.在交流的时候还需要考虑到对方说掌握的情况。
这次只是一个作业,如果在以后的项目开发中肯定不会出现这样的情况。
但在需求分析的时候,我们所有的组员都参与了严肃认真讨论交流。
需求分析是软件成败很关键的一部分。
另外一个问题是计划的实施。
以前我们编写程序基本上没有什么计划,只是按照进展的状况而定。
这次我们完全按照项目开发的要求做了比较周到的计划,但在具体实施的时候遇到了很多没有料想的东西,很多时候一个小小错误,能够耗上一整天的时间,严重影响了我们的进度。
再有就是阶段评审,在项目过程中,很少能够符合事前的计划。
一方面是我们项目经验不足的原因,一方面是计划阶段没有做好。
还有一点是如何调动大家的积极性,因为每个人的任务不一样,碰到的困难大小也不一样,有的组员会有放弃的念头,造成积极性不强。
在评审的时候我们及时分析原因,虽然每个人都有分工,但碰到比较大的问题我们都是一起讨论。
遇到不能解决的,我们就虚心向周围的同学学习,最后的成功离不开每个成员的努力。
这次软件工程作业让我们学到了不少知识,每个组员都有很大的收获。
相信会对我们日后的学习工作起到很大的指导作用。
附录1项目成果软件代码
1.Model代码
Shoufei类
packagehospital.model;
publicclassShoufei{
privateStringleixin;
privateintjine;
privateStringdept;
privateStringjingshour;
privateintpatientID;
publicShoufei(Stringleixin,intjine,Stringdept,Stringjingshour,intpatientID){
this.leixin=leixin;
this.jine=jine;
this.dept=dept;
this.jingshour=jingshour;
this.patientID=patientID;
}
publicvoidsetLeixin(Stringleixin){
this.leixin=leixin;
}
publicvoidsetJine(intjine){
this.jine=jine;
}
publicvoidsetDept(Stringdept){
this.dept=dept;
}
publicvoidsetJingshour(Stringjingshour){
this.jingshour=jingshour;
}
publicvoidsetPatientID(intpatientID){
this.patientID=patientID;
}
publicStringgetLeixin()
{
returnleixin;
}
publicintgetJine()
{
returnjine;
}
publicStringgetDept()
{
returndept;
}
publicStringgetJingshour()
{
returnjingshour;
}
publicintgetPatientID()
{
returnpatientID;
}
}
ShoufeiDAO类
packagehospital.model;
importjava.sql.Connection;
importjava.sql.PreparedStatement;
importjava.sql.ResultSet;
importjava.sql.SQLException;
importjava.util.ArrayList;
importjava.util.List;
importjavax.naming.Context;
importjavax.naming.InitialContext;
importjavax.naming.NamingException;
importjavax.sql.DataSource;
importhospital.model.shuruP;
importorg.omg.PortableServer.REQUEST_PROCESSING_POLICY_ID;
publicclassShoufeiDAO{
/**CreatesanewinstanceoffeiyongDAO*/
publicShoufeiDAO(){
}
privatestaticfinalStringGETALL="select*fromshuruwherePID=?
";
privatestaticfinalStringDELETE="deletefromshuruwherePID=?
";
publicShoufeigetAllfeiy(intpid)
{
DataSourceds=null;
Connectionconnection=null;
PreparedStatementstmt=null;
ResultSetresults=null;
ArrayListlist=newArrayList();
Shoufeishoufei=null;
try{
Contextcontext=newInitialContext();
if(context==null){
thrownewRuntimeException("JNDIContextcouldnotbefound.");
}
ds=(DataSource)context.lookup("java:
comp/env/jdbc/hospitalDB");
if(ds==null){
thrownewRuntimeException("DataSourcecouldnotbefound.");
}
connection=ds.getConnection();
stmt=connection.prepareStatement(GETALL);
stmt.setInt(1,pid);
results=stmt.executeQuery();
while(results.next()){
Stringleixin=results.getString("leixin");
intjine=results.getInt("jine");
Stringdept=results.getString("dept");
Stringjinshou