基于java 的医院排号管理系统设计与实现

博主介绍:专注于Java .net  php phython  小程序 等诸多技术领域和毕业项目实战、企业信息化系统建设,从业十五余年开发设计教学工作

☆☆☆ 精彩专栏推荐订阅☆☆☆☆☆不然下次找不到哟
我的博客空间发布了1000+毕设题目 方便大家学习使用
感兴趣的可以先收藏起来,还有大家在毕设选题,项目以及论文编写等相关问题都可以给我留言咨询,希望帮助更多的人

  1.  总体设计
    1.  基本设计概念和处理流程

系统使用面向对象方法进行分析和设计,在MYSQL数据库上实现数据操作。使用面向对象的JAVA作为开发语言,Windows XP Professional为开发平台,系统基本流程是:用户登录—〉主界面—〉选择进行各项管理的Web页。

    1.  软件结构设计

经过需求分析阶段的工作,针对医院排号管理系统所要实现的目标,将系统分为了六部分:

1. 病人管理:病人可以自己注册,管理员可以注册的病人,进行数据维护。

2. 大夫管理:添加大夫信息,对大夫可以进行数据管理。

 3. 大夫日程管理:添加单位,修改及删除单位信息。

4. 病人预约:病人登录系统可以对医院的大夫进行诊治时间预约。

5. 诊治病人:对于申请预约的病人,可以填写诊治病例。

6. 查看病例:查看已经诊治的病例。

    1.  系统模块设计

根据医院排号管理系统的软件结构设计,对系统总体结构进行了设计,如图4-1所示:

 图3-1 系统总体结构图

    1.  数据库设计

首先通过MYSQL创建一个名为“hospital”的数据库,然后在其中创建“管理员表”、“日程表”、“预约信息表”、“大夫信息表”、“病人信息表”、“病志信息表”六个表。

1. 名称:管理员表(见表3-1)

表3-1管理员表

字段名称

类型

主键

说明

id

int

Yes

用户id

username

vachar

No

用户名

password

vachar

No

密码

Email

vachar

No

所属系院

name

vachar

No

电子邮箱

phone

vachar

No

手机号

2. 名称:日程表(见表3-2)

表3-2 日程表

字段名称

类型

主键

说明

Did

int

Yes

信息号

suna

tinyint

No

周日上午

Sunb

tinyint

No

周日下午

Mona

Tinyint

No

周一上午

Monb

Tinyint

No

周一下午

Tuea

Tinyint

No

周二上午

Tueb

Tinyint

No

周二下午

Wena

Tinyint

No

周三上午

Wenb

Tinyint

No

周三下午

Thua

Tinyint

No

周四上午

Thub

Tinyint

No

周四下午

Fria

Tinyint

No

周五上午

Frib

Tinyint

No

周五下午

Sata

Tinyint

No

周六上午

Satb

Tinyint

No

周六下午

3. 名称:预约表(见表3-3)

                             表3-3 预约表

字段名称

类型

主键

说明

Did

int

Yes

信息号

suna

tinyint

No

周日上午

Sunb

tinyint

No

周日下午

Mona

Tinyint

No

周一上午

Monb

Tinyint

No

周一下午

Tuea

Tinyint

No

周二上午

Tueb

Tinyint

No

周二下午

Wena

Tinyint

No

周三上午

Wenb

Tinyint

No

周三下午

Thua

Tinyint

No

周四上午

Thub

Tinyint

No

周四下午

Fria

Tinyint

No

周五上午

Frib

Tinyint

No

周五下午

Sata

Tinyint

No

周六上午

Satb

Tinyint

No

周六下午

字段名称

类型

主键

说明

4. 名称:大夫信息表(见表3-4)

表3-4 大夫信息表

字段名称

类型

说明

主键

Did

int

部门id

Yes

Name

vachar

姓名

no

Password

Varchar

密码

No

Age

Tinyint

年龄

No

Sex

Tinyint

性别

No

Level

Varchar

级别

No

Section

Varchar

科室

No

Phone

Varchar

电话

No

5. 名称:病人信息表(见表3-5)

表3-5病人信息表

字段名称

类型

说明

主键

Did

int

部门id

Yes

Name

vachar

姓名

no

Password

Varchar

密码

No

Age

Tinyint

年龄

No

Sex

Tinyint

性别

No

Level

Varchar

级别

No

Section

Varchar

科室

No

Phone

Varchar

电话

No

6. 名称:病例信息表(见表3-6)

表3-6病例信息表

字段名称

类型

主键

说明

hid

int

Yes

Id

Doctor

vachar

No

医生

description

vachar

No

描述

diagnose

vachar

No

处方

patient

vachar

No

病人

rx

vachar

No

历史

finished

vachar

No

完成状态

FDATE

vachar

No

时间

  1. 系统的详细设计与实现

根据JSP应用的开发过程,按照以下步骤进行了医院排号管理系统的设计。

    1.  管理员登录模块的实现

操作员登录界面:模块所要完成的是管理员的登录,一般用户是不能进入系进行统管理的。

对于界面而言,管理员只要输入自己的姓名和密码,很方便的登录就可以了。界面如图4-1所示。

图4-1 操作员登录界面

登录界面的主要代码如下:

<%

String _login="";

Patient p=(Patient)session.getAttribute("patient");

if(p!=null)

_login="已登录";

if(request.getParameter("login")!=null){

String username=request.getParameter("username");

String password=request.getParameter("password");

try{

p=new Patient(username);

int l=p.login(password);

System.out.println(p.getPID());

switch(l){

case 1:

_login="登录成功";

session.setAttribute("patient",p);

response.sendRedirect("../default.jsp");

break;

case 2:

_login="密码错";

break;

case -1:

_login="数据库异常";

break;

default:

_login="一般异常";

}

}

catch(InvalidUserException iue){

_login="非法用户名";

}

}

%> }

    1. 跳转页面的实现

在医院排号管理系统中,实现跳转功能的界面,分别是主页、添加车辆页、添加用户页、添加院系页等。由于它们的实现功能的方法相同,左侧页面菜单树实现页面菜单加载,主要的文件,patient.inc。

主页界面:主页面是工作人员选择管理内容,使工作人员转向其他页面进行数据管理操作界面设计如图4-2所示。

图4-2 主页界面

根据界面跳转设计用include方法把其他页面菜单引到页面上,实现功能的主要代码查询界面代码如下:

<%@ page contentType="text/html; charset=gbk"%>

<td width="167" height="290" valign="top" bgcolor="8FBEE8">

<div align="center">

<br>

<p><a href="/hospital/default.jsp">返回首页</a></p>

<br>

<p><a href="/hospital/patient/login.jsp">登录(患者用户)</a></p>

<p><a href="/hospital/patient/register.jsp">注册</a></p>

<%if(session.getAttribute("patient")!=null){%>

<p><a href="/hospital/patient/getDoctorInfo.jsp">查询医生信息</a></p>

<p><a href="/hospital/patient/getDoctorInfo.jsp">预约</a></p>

<p><a href="/hospital/patient/getAppointmentInfo.jsp">查询预约信息</a></p>

<p><a href="/hospital/patient/getAppointmentInfo.jsp">取消预约</a></p>

<p><a href="/hospital/patient/getCurrentDoctorInfo.jsp">查询主治医生信息</a></p>

<p><a href="/hospital/patient/getHistory.jsp">查询病历</a></p>

<p><a href="/hospital/patient/logout.jsp">注销</a></p>

<%}%>

<br>

<p><a href="/hospital/doctor/main.jsp">医生用户</a></p>

<p><a href="/hospital/admin/main.jsp">管理员用户</a></p>

<br>

</div>

</td>

预约代码:

<%@ page contentType="text/html; charset=gbk"%><%@ include file = "../include/ccs.inc" %>

<%@ page import="hospital.db.dboperation.*" %>

<%@ page import="hospital.db.*" %>

<%@ page import="java.sql.*" %>

<html>

<head>

<title>医院门诊预约系统-医生预约信息</title>

<meta http-equiv="Content-Type" content="text/html; charset=gbk"></head>

<%

String did=request.getParameter("did");

String _doctorInfo="";

ResultSet rs=null;

Patient patient=(Patient)session.getAttribute("patient");

try{

if(patient==null)

patient=new Patient(Patient.ANONYMOUS);

int a=patient.getDoctorAppointmentInfo(did);

if(a==1){

_doctorInfo="查询成功";

rs=patient.getResultSet();

}

else if(a==-1)

_doctorInfo="数据库异常";

else if(a==0)

_doctorInfo="一般异常";

else

_doctorInfo="DID不存在";

}

catch(InvalidUserException iue){

_doctorInfo="非法用户名";

}

%>

<body bgcolor="#FFFFFF">

<table width="770" height="423" border="0" align="center" cellpadding="0" cellspacing="1" bgcolor="#000000">

<tr>

<td height="421" bgcolor="#FFFFFF"><%@ include file = "../include/head.inc" %>

<table width="770" height="290" border="0" align="center" cellpadding="0" cellspacing="0">

<tr>

<%@ include file = "../include/patient.inc" %>

<td width="603" align="center" valign="top">

<table width="100%" height="85%" border="0" cellpadding="3" cellspacing="1" bgcolor="#666666">

<tr>

<td width="100%" height="257" align="center" valign="top" bgcolor="E3EDFF">

<br>

<p align="left"><%=_doctorInfo%> 单击“当前可预约数量”进行预约</p>

<%if(rs!=null && rs.next()){%>

<table width="100%"  border="0" cellspacing="0" cellpadding="0">

<tr>

<th></th>

<th>周日上午</th>

<th>周日下午</th>

<th>周一上午</th>

<th>周一下午</th>

<th>周二上午</th>

<th>周二下午</th>

<th>周三上午</th>

<th>周三下午</th>

<th>周四上午</th>

<th>周四下午</th>

<th>周五上午</th>

<th>周五下午</th>

<th>周六上午</th>

<th>周六下午</th>

</tr>

<tr align="center">

<td>当前可预约数</td>

<%for(int i=2;i<16;i++){

int day=i/2-1;

int ap=i%2;

out.print("<td><a href=\"makeAppointment.jsp?did="+did+"&day="+day+"&ap="+ap+"\">"+rs.getInt(i)+"</a></td>");

}%>

</tr>

<tr align="center">

<td>最大可预约数</td>

<%for(int i=17;i<31;i++)

out.print("<td>"+rs.getInt(i)+"</td>");%>

</tr>

</table>

<%}%>

</td>

</tr>

</table>

</td>

</tr>

</table></td>

</tr>

</table>

</body>

</html>

<%

if(patient!=null)

patient.closeConnection();

%>

    1. 人员注册功能的实现

医院排号管理系统对于病人信息需要做大量的病人自己录入工作,用户自行录入基本信息,用户名,密码,姓名,性别,年龄,联系地址,联系电话,因此在这里我详细叙述一下车辆管理操作界面的详细设计。

注册用户信息操作界面:登录系统没有账号的病人,可以申请账号,将存入的病人信息添加进数据库。根据我的界面设计,注册操作的界面如下页图4-3所示。

图4-3添加自行车操作界面

根据我对添加自行车操作界面的功能设计和界面设计,实现功能的主要代码如下:

String _register="";

Patient p=(Patient)session.getAttribute("patient");

if(request.getParameter("reg")!=null){

String username=request.getParameter("username");

String password=request.getParameter("password");

int age=Integer.parseInt(request.getParameter("age"));

int sex=Integer.parseInt(request.getParameter("sex"));

String address=request.getParameter("address");

String phone=request.getParameter("phone");

String name=request.getParameter("name");

try{

p=new Patient(Patient.ANONYMOUS);

int r=p.addPatient(username,name,password,age,sex,address,phone);

if(r==1)

_register="注册成功";

else if(r==-2)

_register="用户名已存在";

else if(r==-1)

_register="数据库异常";

else

_register="一般异常";

}

catch(InvalidUserException iue){

_register="非法用户名";

}

finally{

if(p!=null)

p.closeConnection();

}

}}

    1.  查询医生功能的实现

医院排号管理系统的信息管理中,查询、预约大夫功能是非常重要的,使用这个功能可以根据客户的需求尽快查找到合适的大夫,查看大夫的信息,并可以直接提交预约信息。

查询时需要连接数据库,根据查询条件进行查询。下面将对信息查询页的详细设计进行具体的叙述。

医生查询的界面:它的使用具有较大的伸缩性,可以简单、快速的使用,使病人对医院的主要医生有一个了解,也可以直接预约医生给自己诊治。

医生查询的界面如图4-4所示。

图4-4医生、预约查询

根据设计的页面功能,使用以上对象,实现代码如下:

<%@ page contentType="text/html; charset=gbk"%><%@ include file = "../include/ccs.inc" %>

<%@ page import="hospital.db.dboperation.*" %>

<%@ page import="hospital.db.*" %>

<%@ page import="java.sql.*" %>

<html>

<head>

<title>医院门诊预约系统-医生信息</title>

<%

String _getDoctorInfo="";

String orderBy="";

ResultSet rs=null;

Patient p=null;

try{

orderBy=request.getParameter("orderby");

p=new Patient(Patient.ANONYMOUS);

int g=p.getDoctorInfo(orderBy);

if(g==1){

_getDoctorInfo="查询成功";

rs=p.getResultSet();

}

else if(g==-1)

_getDoctorInfo="数据库异常";

else

_getDoctorInfo="一般异常";

}

catch(InvalidUserException iue){

_getDoctorInfo="非法用户名";

}

%>

<meta http-equiv="Content-Type" content="text/html; charset=gbk"></head>

<body bgcolor="#FFFFFF">

<table width="770" height="423" border="0" align="center" cellpadding="0" cellspacing="1" bgcolor="#000000">

<tr>

<td height="421" bgcolor="#FFFFFF"><%@ include file = "../include/head.inc" %>

<table width="770" height="290" border="0" align="center" cellpadding="0" cellspacing="0">

<tr>

<%@ include file = "../include/patient.inc" %>

<td width="603" align="center" valign="top">

<table width="100%" height="85%" border="0" cellpadding="3" cellspacing="1" bgcolor="#666666">

<tr>

<td width="100%" height="257" align="center" valign="top" bgcolor="E3EDFF">

<br>

<p align="left"><strong>单击医生姓名查询医生预约信息</strong></p>

<table width="100%" border="0" cellspacing="0" cellpadding="0">

<tr>

<th>姓名</th>

<th>年龄</th>

<th>性别</th>

<th>职称</th>

<th>科室</th>

<th>特长</th>

<th>联系电话</th>

</tr>

<%while(rs.next()){%>

<tr align="center">

<td><a href="getDoctorAppointmentInfo.jsp?did=<%=rs.getString("DID")%>" >

<%=Util.decode(rs.getString("Name"))%></a></td>

<td><%=rs.getInt("Age")%></td>

<td><%if(rs.getInt("Sex")==1){out.println("女");}else{

out.println("女");

}%></td>

<td><%=Util.decode(rs.getString("Level"))%></td>

<td><%=Util.decode(rs.getString("Section"))%></td>

<td><%=Util.decode(rs.getString("Specialism"))%></td>

<td><%=rs.getString("Phone")%></td>

</tr>

<%}%>

</table>

</td>

</tr>

</table>

</td>

</tr>

</table></td>

</tr>

</table>

</body>

</html>

<%

if(p!=null)

p.closeConnection();

%>}


大家点赞、收藏、关注、评论啦  其他的定制服务  下方联系卡片↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ 或者私信作者

### 回答1: 基于Java的银行排号系统设计实现的研究目标主要包括以下几个方面。 首先,该系统的目标是提供一个简单高效的排号系统,用于银行等机构中客户的排队管理。通过该系统,用户可以轻松地获取排队码,避免了传统人工发的不便和效率低下的问题。 其次,该系统的目标是提供一个智能化的排号服务。通过该系统,用户可以预约或即时获取排队码,根据自身需求选择合适的时间段进行办理业务。同时,系统可以根据预约和即时需求的不同,自动调整叫速度,以保证客户的等待时间最短化。 同时,该系统的目标还包括提供丰富的管理功能。系统管理员可以通过该系统排队过程进行监控和管理,包括查看当前排队情况、调整叫速度、处理特殊情况等。此外,系统还可以提供数据分析报告和统计信息,帮助管理员更好地了解客户需求和服务质量,优化排队流程。 最后,该系统的目标还包括提供良好的用户体验和界面设计系统的界面友好、操作简洁,用户可以轻松进行排号预约或即时获取排队码,同时系统也提供提醒功能,及时通知用户叫信息,方便用户及时前往办理业务。 综上所述,基于Java的银行排号系统设计实现的研究目标主要包括提供简单高效的排号服务、智能化的排号预约和即时获取功能、丰富的管理功能以及良好的用户体验和界面设计。通过实现这些目标,可以提高银行等机构的服务效率和客户满意度。 ### 回答2: 基于java的银行排号系统设计实现研究目标主要包括以下几个方面: 1. 优化客户排队流程:研究如何通过系统设计实现来优化银行的客户排队流程,提高客户的办理效率。通过合理的排号算法和智能化的服务管理模块,减少客户等待的时间,提高服务质量和效率。 2. 提升银行服务水平:研究如何在银行排号系统中引入各种技术手段,如智能识别、人脸识别等,提升银行的服务水平。借助人工智能技术,实现自动化的客户身份验证和服务提示,减少人工操作,提高服务的准确性和效率。 3. 实现异地办理:研究如何通过银行排号系统实现异地办理服务,方便客户跨区域办理业务。通过网络互联和数据共享,消除地域的限制,使得客户可以在任何一个支行都能够办理业务,提升银行的服务范围和便利性。 4. 加强安全保障:研究如何在银行排号系统中加强安全保障,保护客户的隐私和资金安全。建立健全的权限管理体系,确保只有授权人员能够访问和操作系统,避免信息泄露和非法操作的风险。 5. 提高系统稳定性:研究如何设计实现一个稳定可靠的银行排号系统,确保系统的持续稳定运行。通过优化系统架构、提高代码质量和加强异常处理等手段,最大限度地降低系统出错的可能性,保证系统能够长时间稳定运行。 通过以上目标的研究和实现,基于java的银行排号系统将能够提高客户的办理效率,优化银行的服务质量和效率,提升客户的满意度和忠诚度,同时增强银行的竞争力和市场地位。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

翰文编程

你的鼓励 是我最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值