《医院信息系统》实验指导
【实验目的】
通过所学的数据库、程序开发语言、软件工程及医院信息系统的有关知识和方法,进行医院信息系统实例开发,进一步理解医院信息系统的业务流程,熟悉医院信息系统的基本功能,基本掌握医院信息系统开发的一般方法,培养系统设计的整体思想与数据库程序设计能力,培养独立学习、团队合作的精神,提高编写和调试程序的能力。
【实验目标】
1、分组开发完成医院信息系统的某一个子系统。
2、完成医院信息系统实验报告。
【实验内容】
选择比较熟悉的医院信息系统的某一个子系统,比如门诊挂号系统、门诊收费系统、住院收费系统、药库信息系统、门诊药房系统、住院药房信息系统、住院入出转系统、医疗设备管理信息系统等等,运用所熟悉的开发语言(DELPHI、JAVA、VFP、C++等)和数据库(SQL Server 2005等)设计开发具备基本功能的应用软件,并完成相应开发文档的撰写。
【实验时间】
2012年5月(12学时)
【实验地点】
信息技术教学实验中心312
【实验要求】
1、一个团队以4-6人为宜,具体请指导老师结合实际情况予以调整。
2、所选子系统规模不宜过大,5-8个功能模块即可,但所有模块应成为一体。
3、系统开发报告内容框架参考上述报告格式编写,指导老师可根据学生实际情况灵活安排,如采用面向对象方法完成系统分析和设计,可对报告结构作适当调整。
4、实验结束后,指导老师根据各小组实验完成情况予以讲评,给出实验成绩。实验成绩计入本课程期末成绩。考核办法及成绩如下:
需求分析 |
总体设计 |
功能模块
设计 |
数据库设计 |
程序流程
设计 |
用户接口
设计 |
文档规范性 |
30 |
10 |
10 |
10 |
10 |
10 |
20 |
【实验报告】
1、基本要求
(1)要求撰写不少于5000字的文档。
(3)文档中至少要包括系统需求分析、ER模型图、系统功能图、数据字典、表关系的详细说明。
(4)用户界面设计思想,数据流转关系,关键代码的说明。
(5)数据表说明,如:
表名: |
字段名 |
数据类型 |
含义说明 |
空值情况 |
TeacherID |
Char(6) |
教师编号 |
主关键字 |
Teacher Name |
Char(8) |
任课老师的姓名 |
不为空 |
PS |
Char(10) |
教师职称 |
可为空 |
……. |
…… |
…… |
|
2、文档格式
(1)概述
包括项目背景、开发目的和意义、开发环境等。
(2)需求分析
现行系统现状调查说明、业务流程分析等。
(3)数据库逻辑设计
把ER模型图转换为关系表,描述每一个基本表关系。
(4)系统功能设计
画出系统功能结构图,描述每一个功能所完成的任务情况并说明数据如何流转。同时,对系统中的数据字典进行说明。
(5)界面设计
列出关键窗体并进行陈述,界面设计要合理。简述操作说明。
(6)代码实现
更新、添加、查询数据的SQL语句与代码。
(7)结论
写出完成本实验的心得、收获以及软件需改进的地方。
(8)参考文献。
完成本实验所查阅的参考资料。
湖北中医药大学
医学信息工程专业
实 验 报 告
课程名称 医院信息系统____________
实验题目 预约挂号系统
实验日期:2012年 5 月 20 日 起 2012年 6 月 3 日 止
班 级: 09级信息工程(2)班
组 长: 杨 锋 学号: 20090702054
成 员: 李峰 学号: 20090702079
徐国栋 学号: 20090702051
严力 学号: 20090702070
郑华杰 学号: 20080702044
指导教师: 肖勇
组员承担任务情况
姓名 |
学号 |
承担的
主要任务 |
组长
评分 |
指导老师
评分 |
杨锋 |
20090702054 |
后台代码的编写、后期的代码的整合 |
80 |
|
郑华杰 |
20080702044 |
负责后台,把前台设计的
静态页面改为jsp动态页面 |
80 |
|
李峰 |
20090702079 |
前台页面的设计、文档的编写、数据库的创建 |
85 |
|
徐国栋 |
20090702051 |
需求分析、前台设计、文档编写 |
85 |
|
严力 |
20090702070 |
前台界面设计、测试 |
80 |
|
具体任务分配
一、模块分:2人做后台,进行数据的添、修、删、查操作。
3人做前台,进行数据的查看部分信息,重点是前台是面向大众的,前台是门面。
二、人员分配:
需求分析:杨锋,郑华杰,李峰,徐国栋,严力
后台人员:杨锋,郑华杰。
前台人员:李峰,徐国栋,严力
文档编写:李峰,徐国栋
数据库设计:李峰
测试:郑华杰,严力
三、几点要求:
1.实现各自的功能,先功能后界面,特别是前台的,一定要交换思想,相互合作。前台的联系是特别紧的。有问题大家一起解决。
2.变量的统一:数据库设计好,每那一份数据库的设计表,变量的定义尽量用数据库中的字段,都采用驼峰标识,便于以后综合。
我们不是一个人在奋斗,我们是一个团队,大家要互相帮助,争取早日完成我们的项目。
《实验报告书》目录范例
目录
第1章 概述
1.1背景
1.2系统开发目的与意义
第2章 系统需求分析
2.1 现行系统调查
2.2 业务流程分析
2.3数据流程分析(可略)
2.4现行系统存在的主要问题和薄弱环节
第3章 系统总体设计
3.1 系统开发目标
3.2 系统功能设计
3.3 系统数据流程
3.4新系统数据模型(E-R图)
3.5数据库结构设计(含数据字典)
第4章 系统详细设计
4.1 系统功能模块说明
4.2界面设计
4.3代码设计
第5章 系统实施
结论
参 考 文 献
第1章 概述
1.背景
网络的普及,以及医院信息化都是促进预约门诊挂号系统的形成。加之,现实生活中人们对于医院本身结构不合理的不满,挂号就诊过程中会花费较多的人力物力,这些既不利于患者的就诊,也不利于医院自身的发展。各个方面都促成医院信息系统的开发和应用是必须的。
医院预约挂号系统是人们对于医院信息系统最直面的接触,所以有必要做好这项门面工作。
2.目的及意义
为了方便方便群众就医,最基本的功能就是患者在家就能预约挂号,不用患者及亲属费时费力去医院排队挂号。还有是网络的普及,最简单的方法就能利用电脑,手机等人们日常就能利用的工具,如:
①电脑上网预约。电脑日益普及,绝大多数家庭都安装了电脑。网络预约方式主要针对能上网的患者, 因而能很方便的进行上网预约。
②手机上网预约。主要针对暂时远离电脑或商务繁忙的患者,只要他拿出手机轻按几键,访问预约挂号网址,便可迅速完成预约。
医院预约挂号系统对于方便群众就医、提高医疗服务水平具有重大意义。医院施行预约挂号服务,有利于患者进行就医咨询,提前安排就医计划,减少候诊时间,也有利于医院提升管理水平,提高工作效率和医疗质量,降低医疗安全风险。
第2章 系统需求分析
2.1 现行系统调查:
现行医院预约挂号子系统有以下几个基本的功能模块,譬如用户注册模块,用户登录模块,用户修改或删除个人信息模块,用户查找各科医师信息(即相当于查找各科室信息)的模块,用户选择挂号模块,用户选择推退号模块,辅以用户退出系统功能。下面就各功能的实现具体说明:
1.用户注册,登录。这一块是每一个预约挂号系统必有的功能模块,系统会根据用户提交的数据判断用户是否合法,进而选择是否接受用户注册及进入系统。当下各预约挂号系统在用户注册与登录这一模块基本一致。是为基本模块。
2.用户修改和删除个人信息模块。这是用户保证自己信息的安全等因素考虑而实现的功能模块。
3.用户查找。系统一般会根据医生所属科室的不同那个而将医生分门别类,再将这些信息根据科室类别展现在病人面前,病人根据各个医生具体的情况予以确认自己的挂号意向。
4.用户挂号。病人选择好医师和时间后进行挂号,系统根据病人挂号情况自动生成虚拟挂号单供病人确认。如有差错病人可以自行更正。
5.用户退号。病人如遇特殊情况可选择退号,系统自动取消病人之前的选择并清除记录。
6.用户退出系统。这一功能比较简单,各挂号系统实施方法几乎一致。
现行医院挂号子系统虽有诸般优点且一直在不断完善,但是迄今为止,也还是有一些漏洞和差错出现,现举例说明:
(1).挂号系统一般利用会员网上登录再进行挂号,据新闻报道,北京市的电话或网上预约挂号系统就存在实名制的困扰,一方面实名制被应用入挂号系统,一方面却是票贩子利用医院系统的实名制身份信息未与公民的真实信息相联结而大肆倒票倒票。这一漏洞相信会在很快解决。
(2).挂号子系统中病人的个人信息相对而言是隐私的,医院负有保护这些隐私的义务,再当前的医院信息系统中或多或少的存在某些反面的安全漏洞,如果漏洞被利用,那么医院所拥有的斌人资料将会有泄露的危险。建议医院在其信息系统中不断重视和加强安全方面的投入。
2.2 业务流程分析:
病人通过访问医院预约挂号系统平台注册,注册时需要填写个人基本信息,包括姓名、联系电话、身份证号码以及地址。注册成功后选择需挂科室的医生或专家进行预约,最后提交,提交成功后系统会提示“预约成功”,产生一个流水序列号。预约病人就诊当天带上有效证件,到医院门诊大厅固定窗口付费取号,医院需要核实病人身份,对提供有效证件的预约病人予以办理,并在系统中进行挂号成功的标注。对未在预约时间前往的病人,系统自动进行取消的标注,并释放相应的资源。病人完成预约挂号后,预约时间若有变动,可取消预约(关于具体的时间限定功能并未实现)。另有已注册的会员修改自己的个人信息功能,会员
登陆后,可按照相应模块的提示完成会员信息的修改,修改保存后系统会提示修改成功。
第3章 系统总体设计
3.1系统开发目标
1.网上预约 用户可通过访问医院网站的进行挂号预约。网站丰富的医疗资源可为患者提供全面的医院信息,让患者有很大的选择空间,患者在登录预约挂号系统模块后可选定相应的科室,医生的平台,患者可使用就医卡,或者临时实名注册用户来完成网上预约,使用就医卡的用户可选择在线支付费用等。以实现基本预约功能。网站
应该同时支持手机wap端访问。
2.现场预约 能够与网络上的信息同步。患者直接在医院的预约中心进行挂号,取号,退号,缴费等服务,他能及时为患者提供专家咨询,极大患者的预约挂号的有关问题,帮助患者正确挂号,.通过挂号人 员提供的人性化服务 ,给患者以亲切感 , 信任感 。
3.2系统功能设计
1.会员登录和新用户注册:会员应根据自己的就医卡等现有的信息进行登录,新用户注册需采用实名制。
2.科室,医生信息查询:对医生预约信息进行查询。查询分为以下四种模式:按照专家姓名代码查询、按照科室进行查询、按照医生专长进行模糊查询、按照出诊时间等进行查询;
3.预约信息提交:客户查询到要预约的专家号后,移动挂号应客户要求进行预约;预约成功后,系统会发送预约成功的通知短信到客户手机上,完成整个预约提交过程;
4.预约信息取消:客户预约成功后,如遇特殊原因不能就诊,需网页退号申请并电话确定。
5.预约记录查询:客服人员可以根据以下两种方式查询预约记录:按呼入移动挂号系统的手机号和按客户证件号码查询,帮助客户查询本人预约的情况。
3.3 系统数据流程
3.4新系统数据模型(E-R图)
3.5数据库结构设计
1.表的结构设计
医生表dbo.doctor
doctorId |
char(10) |
name |
nchar(10) |
sex |
char(2) |
age |
smallint |
department |
char(20) |
position |
char(10) |
doctorAge |
smallint |
graduateCollege |
char(30) |
describe |
Text |
挂号表dbo.guahao
guahaoId |
int |
doctorId |
char(10) |
doctorName |
char(10) |
orderTime |
char(30) |
orderDepartment |
char(20) |
tel |
char(11) |
identityId |
char(20) |
patientName |
char(10) |
patientAge |
smallint |
patientSex |
char(2) |
用户表dbo.users
userName |
char(10) |
password |
char(10) |
identityId |
char(18) |
sex |
char(2) |
age |
smallint |
tel |
char(12) |
address |
char(30) |
|
|
2.部分表数据数据
第4章 系统详细设计
4.1 系统功能模块说明
本预约挂号系统分为用户(病人)信息功能模块,医生信息功能模块,挂号单信息维护功能模块。
用户信息模块:包含添加用户,查询用户,删除用户,用户信息的修改及密码的修改。
医生信息模块:包含医生信息的添加、查询、修改于删除。
挂号单模块: 包含挂号单的生成,查询,删除。
4.2界面设计
由于湖北中医药大学滨湖综合医院预约挂号系统是为解决广大患者一号难求的局面而设计的网络版挂号系统,所以界面都是以网页的形式设计的。
1.首界面:
首界面的面向所有人的一个窗口,代表一个医院的形象,所以首界面的设计这要是对医院的宣传及介绍和预约挂号须知及预约挂号流程,也承担用户的登录与注册功能。
2.主界面:
如果登录页面的用户名和密码都正确就进入系统的主界面,在主界面可以查询和修改自己的个人信息、查询科室信息及科室的医生信息,也可以搜索医生查看医生的详细信息、预约流程选择特定专家去挂号,然后生成挂号单,用户可以查询自己的挂号记录及也可在规定的时间内选择退号。
3.点击专家列表中的点击查看进入专家详细页面:
4.根据专家详细信息页面下面的预约挂号日期选择进入预约挂号确认页面:
5.点击提交完成预约挂号,用户可以点击预约记录查询,进入预约记录查询页面(挂号单信息):
4.3代码设计
技术解决方案:java
由于代码的编写过程中很多地方要用到数据库的连接,所以把与数据的连接专门封装为一个DB类,代码:
DB.java
package com.hbtcm.his.util;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class DB {
public static Connection getConn() {
Connection conn = null;
try {
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
conn = DriverManager.getConnection("jdbc:sqlserver://localhost:1433;DatabaseName=his", "sa", "123456");
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
return conn;
}
public static void close(Connection conn) {
if(conn != null) {
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
conn = null;
}
}
}
User.java:
package com.hbtcm.his.model;
public class User {
private String userName;
private String password;
private String identityId;
private String sex;
private int age;
private String tel;
private String address;
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getIdentityId() {
return identityId;
}
public void setIdentityId(String identityId) {
this.identityId = identityId;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getTel() {
return tel;
}
public void setTel(String tel) {
this.tel = tel;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
}
用户登录验证页面:
loginCheck.jsp
<%@ page language="java" contentType="text/html; charset=GB18030"
pageEncoding="GB18030"%>
<%@ page import="com.hbtcm.his.util.*" %>
<%@ page import="java.sql.*,com.hbtcm.his.model.* " %>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<%
request.setCharacterEncoding("GBK");
String userName = request.getParameter("userName");
String password = request.getParameter("password");
//System.out.println(userName+" "+password);
if(userName == null || userName.trim() == ""){
out.print("userName can not be null!");
return;
}else if(password == null || password.trim()== ""){
out.print("password can not be null!");
return;
}
User user = null;
Connection conn = DB.getConn();
String sql = "select * from users where userName=? and password=?";
PreparedStatement pstmt = conn.prepareStatement(sql);
pstmt.setString(1,userName);
pstmt.setString(2,password);
ResultSet rs = pstmt.executeQuery();
if(rs.next()){
user = new User();
user.setUserName(rs.getString("userName"));
user.setPassword(rs.getString("password"));
user.setIdentityId(rs.getString("identityId"));
user.setSex(rs.getString("sex"));
user.setAge(rs.getInt("age"));
user.setTel(rs.getString("tel"));
user.setAddress(rs.getString("address"));
session.setAttribute("user",user);
response.sendRedirect("main.html");
}else{
response.sendRedirect("index.jsp");
}
%>
医生信息查询页面:
doctorList.jsp
<%@ page pageEncoding="GB18030"%>
<%@ page import="java.sql.*, java.util.*,com.hbtcm.his.util.*"%>
<%
request.setCharacterEncoding("GB18030");
int pageSize = 10;
int totalPages ;
String strPageNo = request.getParameter("pageNo");
int pageNo;
if(strPageNo == null || strPageNo.equals("")){
pageNo = 1;
}else{
try{
pageNo =Integer.parseInt(strPageNo.trim());
}catch(NumberFormatException e){
pageNo = 1;
}
if(pageNo <= 0)
pageNo = 1;
}
Connection conn = null;
ResultSet rs = null;
PreparedStatement pstmt = null;
conn = DB.getConn();
String action = request.getParameter("action");
if(action != null && action.equals("action")){
String keshi = new String(request.getParameter("keshi").getBytes("iso8859_1"),"GBK");
Statement stmtCount =conn.createStatement();
String sqlStr = "select count(*) from doctor where department='"+keshi+"'";
System.out.println(sqlStr);
ResultSet rsCount = stmtCount.executeQuery(sqlStr);
rsCount.next();
int totalRecords = rsCount.getInt(1);
rsCount.close();
stmtCount.close();
totalPages = totalRecords%pageSize == 0? totalRecords/pageSize : totalRecords/pageSize+1;
if(pageNo > totalPages)
pageNo = totalPages;
int startPos =(pageNo-1)*pageSize;
String sql2 = "select * from (select row_number() over(order by doctorId) rs,* from doctor where department=?)a where rs>? and rs<=?";
pstmt = conn.prepareStatement(sql2);
pstmt.setString(1,keshi);
pstmt.setInt(2,startPos);
pstmt.setInt(3,pageNo*pageSize);
rs = pstmt.executeQuery();
}else{
Statement stmtCount =conn.createStatement();
ResultSet rsCount = stmtCount.executeQuery("select count(*) from doctor");
rsCount.next();
int totalRecords = rsCount.getInt(1);
rsCount.close();
stmtCount.close();
totalPages = totalRecords%pageSize == 0? totalRecords/pageSize : totalRecords/pageSize+1;
if(pageNo > totalPages)
pageNo = totalPages;
int startPos =(pageNo-1)*pageSize;
String sql = "select * from (select row_number() over(order by doctorId) rs,* from doctor)a where rs>? and rs<=?";
pstmt = conn.prepareStatement(sql);
pstmt.setInt(1,startPos);
pstmt.setInt(2,pageNo*pageSize);
rs = pstmt.executeQuery();
}
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>名医介绍</title>
<script type="text/javascript" src="script/calender.js"></script>
<style type="text/css">
<!--
.STYLE1 {
color: #FF3333;
font-size: 18px;
}
-->
</style>
</head>
<BODY bgColor=#faebce>
<img src="images/doctor.jpg" width="230" height="25"><br/>
<form action="doctorList.jsp" method="get">
<input type="hidden" name="action" value="action">
所在科室<select name="keshi">
<option value="内科">内科</option>
<option value="皮肤科">皮肤科</option>
<option value="针灸科">针灸科</option>
<option value="肿瘤科">肿瘤科</option>
<option value="外一科">外一科</option>
<option value="肾病科">肾病科</option>
<option value="呼吸病科">呼吸病科</option>
<option value="心血管科">心血管科</option>
</select> <input type="submit" value="查询" />
选择日期:<input name="pubdate" type="text" id="pubdate" size="10" onFocus="HS_setDate(this)" />
</form>
<TABLE cellSpacing=0 cellPadding=5 width="80%" border=1 align='center'>
<tr>
<th>医生编号</th>
<th>医生姓名</th>
<th>性别</th>
<th>医龄</th>
<th>科室</th>
<th>详细资料</th>
</tr>
<%
while(rs.next()) {%>
<tr>
<td align="center"><%=rs.getString("doctorId")%></td>
<td align="center"><%=rs.getString("name")%></td>
<td align="center"><%=rs.getString("sex")%></td>
<td align="center"><%=rs.getString("doctorAge")%></td>
<td align="center"><%=rs.getString("department")%></td>
<td align="center"><a href="doctorDetailInfo.jsp?id=<%=rs.getString("doctorId") %>">点击查看</a></td>
</tr>
<%}
DB.close(rs);
DB.close(pstmt);
DB.close(conn);
%>
</table>
<br/>
<div align="center">
共<%=totalPages %>页 当前第<%=pageNo %>页
<a href="doctorList.jsp?pageNo=<%=pageNo-1 %>">上一页</a>
<a href="doctorList.jsp?pageNo=<%=pageNo+1 %>">下一页</a>
<form name="form" action="doctorList.jsp">
<input type="text" size="4" name="pageNo" value=<%=pageNo %>>
<input type="submit" value="go"/>
</form>
</div>
</BODY>
</html>
医生详细信息页面(关键代码):
doctorDetailInfo.jsp
<%@ page contentType="text/html; charset=utf-8" language="java" import="java.sql.*" errorPage="" %>
<%@ page import="com.hbtcm.his.util.*"%>
<%
request.setCharacterEncoding("GBK");
String id = request.getParameter("id");
//System.out.println(id);
Connection conn = DB.getConn();
String sql = "select * from doctor where doctorId=? ";
PreparedStatement pstmt = conn.prepareStatement(sql);
pstmt.setString(1,id);
ResultSet rs = pstmt.executeQuery();
if(rs.next()){
%>
生成挂号单信息页面(关键代码):
ensure.jsp
<%@ page language="java" contentType="text/html; charset=GB18030"
pageEncoding="GB18030"%>
<%@ page import="com.hbtcm.his.util.*" %>
<%@ page import="com.hbtcm.his.model.*" %>
<%@page import="java.util.Date"%>
<%@ page import="java.sql.*" %>
<%
request.setCharacterEncoding("GB18030");
String action = request.getParameter("action");
User user = null;
user =(User)session.getAttribute("user");
Connection conn= null;
if(action != null && action.equals("action")){
String doctorId = request.getParameter("id");
//System.out.println(doctorId);
String doctorName = request.getParameter("doctorName");
//System.out.println(doctorName);
String orderDepartment = request.getParameter("orderDepartment");
String orderTime = request.getParameter("orderTime");
String patientName = request.getParameter("patientName");
String patientAge =request.getParameter("patientAge");
String sex = request.getParameter("sex");
System.out.println(sex);
String identityId =request.getParameter("identityId");
String tel = request.getParameter("tel");
int age = user.getAge();
conn = DB.getConn();
String sql2 = "insert into guahao values (?,?,?,?,?,?,?,?,?)";
PreparedStatement pstmt2 = conn.prepareStatement(sql2);
pstmt2.setString(1,doctorId);
pstmt2.setString(2,doctorName);
pstmt2.setString(3,orderTime);
pstmt2.setString(4,orderDepartment);
pstmt2.setString(5,tel);
pstmt2.setString(6,identityId);
pstmt2.setString(7,patientName);
pstmt2.setInt(8,age);
pstmt2.setString(9,sex);
pstmt2.execute();
response.sendRedirect("yuyueSuccess.jsp");
out.println("您好,你已经预约成功,请在指定时间带你的身份证到濒湖综合医院一楼门诊挂号处领取挂号单!祝您早日康复!");
pstmt2.close();
return;
}
String id = request.getParameter("id");
String time = request.getParameter("time");
//System.out.println(time+"nihao wo time");
//System.out.println(id);
conn = DB.getConn();
String sql = "select * from doctor where doctorId=? ";
PreparedStatement pstmt = conn.prepareStatement(sql);
pstmt.setString(1,id);
ResultSet rs = pstmt.executeQuery();
if(rs.next()){
%>
第五章 系统实施
预约挂号系统-开发环境搭建:
开发工具:myeclipse8.5
Web server:tomcat6.0
Database:SQL Server 2005
Tomcat的配置:
项目文件名为stu放在tomcat中webapps下,项目文件下建了WEB-INF和iamges文件夹,WEB-INF下有classes和lib文件夹和一个xml配置文档,classes文件夹用于存放自己编写的类,lib文件夹下存放tomcat服务器及web应用程序都可以访问的JAR文件。images文件夹存放的是web应用程序用到的图片。
SQL Server 2005的配置:
先安装SQL Server的配置程序,在安装SQL Server安装程序,安装过程中设置用户名:sa,密码:123456.安装完成后,打开配置应用程序,进入SQL Server 2005网络配置-SQLEXPRESS的协议---TCP/IP 右键点击启用状态,进入tcp/ip ip地址ipall的tcp端口改为1433后重启SQLServer服务端。
预约挂号系统-开发安排:
V0.1:前后台界面的设计
V0.2:用户(患者)相关jsp/javaBean的开发
V0.3:专家相关jsp/javaBean的开发
V0.4:挂号单相关jsp/javaBean的开发
V1.0:其他jsp的开发及完成集成测试。
预约挂号系统-文档编纂
结论:
本课程设计是把学过到的软件工程的相关知识和医院信息系统及以前学过的编程语言结合起来编写医院信息系统的一个子系统。当初选择开发预约挂号系统是由于没有医院实习的经验,需求不好确定,相反预约挂号系统的需求好确定一些,直接可以上网进某个医院的预约挂号系统注册个账号去探索业务需求。严格按照问题的定义、可行性研究、需求分析、总体设计、详细设计、编码、测试等软件工程的生命周期去开发预约挂号系统让人有一种大炮轰蚊子的感觉,感觉小系统完全按照软件工程方法论去开发有时反而限制了项目的开发进度,不过整个过程下来我们对软件工程整个生命周期有了更深的认识。本预约挂号系统是寝室五个一起努力的结果,从起初的给医院的命名(湖北中医药大学濒湖综合医院)、需求分析、数据库的设计、前后台页面的设计、jsp页面的开发到文档编纂大家都积极参与,有什么问题大家一起商量,一起解决。本预约挂号系统基本上实现了预约挂号的功能,但还存在以下功能没实现:
1.没能与个人的银行卡绑定起来,挂号业务中没实现交纳挂号费的功能。
2.由于需求分析不够专家的看病的时间段没设计好,这部分改为了静态页面。
3.代码不够健壮,存在安全性问题,稍微被人耍点花样系统就被搞跨啦。
参 考 文 献:
软件工程导论第5版(张海藩 编著)
医院信息系统(王明时 主编)
面向对象与java程序设计(朱福喜 编著)
网站规划与网页设计第2版(张兵义等编著)
百老师的资料
谷老师的资料