病例管理系统,javaweb项目。用servlet写的,工具用的eclipse.tomcat

**
**

*目* *录*

1 绪论

1.1项目来源及研究背景 (1)

1.2研究目的及意义 (1)

1.3研究内容 (2)

1.4实施计划 (3)

2 需求分析

2.1可行性分析 (4)

2.2功能需求 (5)

2.3开发工具及相关技术 (6)

3 总体设计

3.1功能模块划分 (10)

3.2系统业务流程 (11)

3.3数据库设计 (12)

4 详细设计

4.1前端的设计与实现 (29)

4.2 模块设计 (37)

5 系统测试

5.1测试目的 (56)

5.2测试方法 (56)

5.3测试实例 (57)

5.4测试结果分析 (60)

**
**

*1* *绪论*

本章主要介绍了论文的研究背景、研究目的与研究意义,接着分析梳理了国内外病历管理系统的研究现状,阐述了在当今时代背景下研究病历管理系统的必要性和重要性。

1.1项目来源及研究背景

1.2研究目的及意义

1.2.1研究的目的

1.2.2研究的意义

1.3研究内容

1.4实施计划

** ***2* *需求分析*

2.1可行性分析

2.1.2技术可行性

2.1.3操作可行性

2.2功能需求

2.3开发工具及相关技术

2.3.1 JSP技术

2.3.2 JAVA技术

2.3.3 MYSQL数据库简介

** ***3* *总体设计*

总体设计是系统的概念模型,它从用户的需求分析中产生,并为详细设计提供框架,所以对软件设计的全过程有非常重要的影响。总体设计的任务包括对系统的功能模块进行划分,对各功能模块间的对应关系进行设计,以及确定系统所用数据库的结构。

3.1功能模块划分

系统功能模块,如图 3-1所示。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9vUJLdb5-1625206201664)(file:///C:\Users\DELL\AppData\Local\Temp\ksohtml10156\wps1.png)]

图 3-1 系统功能模块图

通过对系统用户权限的分析,我们将本病历管理系统分为三大模块:管理员模块、医护模块、患者模块。

3.1.1管理员模块

该模块可以说包含了整个管理员功能,如图3-2所示。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CRkrFIwq-1625206201669)(file:///C:\Users\DELL\AppData\Local\Temp\ksohtml10156\wps2.png)]

图 3-2 管理员模块

3.1.2医护模块

该功能完成了医护对自己和患者的信息管理。医护模块如图3-3所示。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-t3ksp1eL-1625206201672)(file:///C:\Users\DELL\AppData\Local\Temp\ksohtml10156\wps3.png)]

图 3-3 医护模块

3.1.1患者模块

该模块实现患者对自己信息进行查询。患者模块如图3-4所示。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-b216ICG1-1625206201675)(file:///C:\Users\DELL\AppData\Local\Temp\ksohtml10156\wps4.png)]

图 3-4 患者模块

3.2系统业务流程

3.3数据库设计

3.3.1概念设计

3.3.2逻辑设计

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hnJOUq3K-1625206201677)(C:\Users\DELL\AppData\Roaming\Typora\typora-user-images\image-20210702140519850.png)]

2.数据模型

(1)患者信息表:用于保存患者的个人基本信息,如表3-1所示。

表3-1患者信息表(huanzhe)

列名中文含义类型宽度允许空值备注
bh编号int11notnull主键
name姓名varchar30notnull
sex性别varchar20null
age年龄varchar20null
tel联系电话varchar20null
hy婚姻varchar50null
zy职业varchar50null
idno身份证号varchar50null
adress家庭住址varchar255null

(2)检查报告表:用来保存检查患者情况信息,如表3-2所示。

3.3.3物理设计

在这里插入图片描述
在这里插入图片描述

package com.dao;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

/**

 * 数据库操作工具类

 * @author HCD

 * */
   public class DB
   {
   //数据库连接
   private Connection con;
   private PreparedStatement pstm;
	private String className="com.mysql.jdbc.Driver";
	private String url="jdbc:mysql://127.0.0.1:3306/blglxt?useUnicode=true&characterEncoding=utf-8";
	private String user="xxxx";
	private String password="xxxx";

	public DB()
	{
		try
		{
			//改写配置文件
			Class.forName(className);
		} catch (Exception e)
		{
			System.out.println("加载数据库驱动失败!");
			e.printStackTrace();
		}
	}
	
	/**
	 * 获得数据库连接
	 * @return 数据库连接
	 */
	public Connection getCon()
	{
		try
		{
			con = DriverManager.getConnection(url, user, password);
		} catch (SQLException e)
		{
			System.out.println("创建数据库连接失败!");
			con = null;
			e.printStackTrace();
		}
		return con;
	}
	
	/**
	 * 执行sql语句
	 * @param sql
	 * @param params
	 */
	public void doPstm(String sql, Object[] params)
	{
		if (sql != null && !sql.equals(""))
		{
			if (params == null)
				params = new Object[0];
	
			getCon();
			if (con != null)
			{
				try
				{
					System.out.println("执行SQL:"+sql);
					pstm = con.prepareStatement(sql,
							ResultSet.TYPE_SCROLL_INSENSITIVE,
							ResultSet.CONCUR_READ_ONLY);
					for (int i = 0; i < params.length; i++)
					{
						pstm.setObject(i + 1, params[i]);
					}
					pstm.execute();
				} catch (SQLException e)
				{
					System.out.println("doPstm()方法出错!");
					e.printStackTrace();
				}
			}
		}
	}
	
	/**
	 * 获得ResultSet
	 * @return
	 * @throws SQLException
	 */
	public ResultSet getRs() throws SQLException
	{
		return pstm.getResultSet();
	}

 


	/**
	 * 关闭数据库
	 */
	public void closed()
	{
		try
		{
			if (pstm != null)
				pstm.close();
		} catch (SQLException e)
		{
			System.out.println("关闭pstm对象失败!");
			e.printStackTrace();
		}
		try
		{
			if (con != null)
			{
				con.close();
			}
		} catch (SQLException e)
		{
			System.out.println("关闭con对象失败!");
			e.printStackTrace();
		}
	}

}

** ***4* *详细设计*

详细设计主要是通过需求分析的结果,对系统功能设计进行细分,设计出满足要求的软件系统,并配合程序流程图、类图以及时序图的描述,分别介绍系统各模块的详细设计与实现。

4.1前端的设计与实现

在这里插入图片描述
这是长截图

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

5 系统测试

在系统的开发过程中,测试环节同样是必不可少的。测试是对一个系统能否正常使用的保证,同时也是对一个软件的质量进行保证。

5.1测试目的

5.2测试方法

5.2.1黑盒测试

5.2.2白盒测试

5.3测试实例

5.3.1用户登录测试

表5-1用户登录测试用例表

项目名称病历管理系统测试时间
功能模块系统登入测试人员
功能描述用户进入对应的系统界面
测试目的测试用户是否能成功进入系统
预置条件成功打开登入页面
操作步骤操作描述预期结果实际结果
1填入账号yh密码123456,点击登录弹出系统登入成功的提示,成功登入界面和预期结果一致
2填入账号admin密码123456,点击登入弹出系统登入成功的提示,成功登入界面和预期结果一致
3填入账号yh 密码123,点击登录弹出账号或密码错误的提示和预期结果一样
4填入账号admin密码123,点击登录弹出账号或密码错误的提示和预期结果一样
5填入账号yh未填入密码,点击登录弹出请输入密码的提示和预期结果一样
6填入账号admin未填入密码,点击登录弹出请输入密码的提示和预期结果一样
7填入账号hh 密码123456弹出账号或密码错误的提示和预期结果一样

5.3.2患者检查管理测试

表5-2患者检查管理测试用例表

项目名称病历管理系统测试时间
功能模块患者检查管理测试人员
功能描述对患者个人信息、检查报告和复查记录的增加、删除、修改检查
测试目的医护和管理员是否能对患者个人信息、检查报告和复查记录的增加、删除、修改检查
预置条件医护或管理员成功登入系统,点击患者检查管理
操作步骤操作描述预期结果实际结果
1

5.3.3门诊病历管理测试

表5-3 门诊病历管理测试用例表

项目名称病历管理系统测试时间
功能模块门诊病历管理测试人员
功能描述对患者门诊信息的增加、删除、修改检查
测试目的医护和管理员是否能对患者门诊信息的增加、删除、修改检查
预置条件医护或管理员是否成功登入系统,点击门诊病历管理
操作步骤操作描述预期结果实际结果
1

5.3.4住院病历管理测试

表5-4住院病历测试用例表

项目名称病历管理系统测试时间
功能模块住院病历管理测试人员
功能描述对患者住院的增加、删除、修改检查
测试目的医护和管理员是否能对患者住院的增加、删除、修改检查
预置条件医护或管理员是否成功登入系统,点击住院病历管理
操作步骤操作描述预期结果实际结果
1

5.4测试结果分析

                     | 测试人员 |          |

| 功能描述 | 对患者住院的增加、删除、修改检查 | | |
| 测试目的 | 医护和管理员是否能对患者住院的增加、删除、修改检查 | | |
| 预置条件 | 医护或管理员是否成功登入系统,点击住院病历管理 | | |
| 操作步骤 | 操作描述 | 预期结果 | 实际结果 |
| 1 | | | |
| | | | |
| | | | |
| | | | |

5.4测试结果分析

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值