Java开源系统共享:医院就诊挂号
版权声明:本文为博主原创文章,遵循 CC 4.0 BY 版权协议,转载请附上原文出处链接和本声明。
本文链接:
https://blog.csdn.net/weixin_44893902/article/details/119986708
一、语言和环境
1. 实现语言: JAVA语言。
2. 环境要求: MyEclipse/Eclipse + Tomcat + MySQL。
3. 使用技术: Spring MVC + Spring + MyBatis 或 JSP + Servlet + JavaBean + JDBC。
二、实现效果
实现能够对患者姓名,医师类别、科室的模糊查询,用户点击核销以后状态变为已就诊。
点击挂号实现基本信息的添加
三、实现代码
数据库:
SET FOREIGN_KEY_CHECKS=0;
-- ----------------------------
-- Table structure for tb_patient
-- ----------------------------
DROP TABLE IF EXISTS `tb_patient`;
CREATE TABLE `tb_patient` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(50) DEFAULT NULL,
`sex` varchar(10) DEFAULT NULL,
`age` int(11) DEFAULT NULL,
`phone` varchar(20) DEFAULT NULL,
`department` varchar(50) DEFAULT NULL,
`type` varchar(50) DEFAULT NULL,
`price` decimal(9,2) DEFAULT NULL,
`state` int(11) DEFAULT NULL,
`register_time` datetime DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8;
-- ----------------------------
-- Records of tb_patient
-- ----------------------------
INSERT INTO `tb_patient` VALUES ('1', '张蕾', '女', '12', '13895463212', '儿科', '专家医师', '25.00', '1', '2021-07-18 12:23:00');
INSERT INTO `tb_patient` VALUES ('2', '刘德明', '男', '28', '13345623215', '骨科', '普通医师', '8.00', '0', '2021-07-18 12:23:00');
INSERT INTO `tb_patient` VALUES ('3', '李将军', '男', '38', '13578064788', '内科', '专家医师', '25.00', '1', '2021-07-17 12:23:00');
INSERT INTO `tb_patient` VALUES ('4', '张佩佩', '女', '44', '18214217246', '外科', '副主任医师', '17.00', '0', '2021-07-16 12:23:00');
INSERT INTO `tb_patient` VALUES ('5', '程聪明', '男', '29', '13652645964', '骨科', '副主任医师', '17.00', '0', '2021-08-08 16:21:52');
项目Java代码:
目录结构
JAR包:
代码:
=src
> com.mhys.crm.controller
HospitalContrller.java
package com.mhys.crm.controller;
import java.util.List;
import javax.annotation.Resource;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import com.mhys.crm.dao.TbPatientMapper;
import com.mhys.crm.entity.TbPatient;
@Controller
public class HospitalContrller {
@Resource
private TbPatientMapper tbPatientMapper;
@RequestMapping('/select')
public String getList(Model model) {
List<TbPatient> selctAll = tbPatientMapper.selectAlls();
System.out.println(selctAll);
model.addAttribute('selctAll', selctAll);
return 'info';
}
@RequestMapping('/list')
public String getAll(Model model, String name, String type, String dep) {
List<TbPatient> selctAll = tbPatientMapper.selectAll(name, type, dep);
System.out.println(name+'==='+type+'==='+dep);
model.addAttribute('selctAll', selctAll);
return 'info';
}
@RequestMapping('/upd')
public String upDev(Model model,int id) {
int update = tbPatientMapper.update(id);
return 'redirect:/select.do';
}
@RequestMapping('/adds')
public String adds(Model model) {
return 'addInfo';
}
@RequestMapping('/insert')
public String toaddDev(Model model,TbPatient tb) {
tbPatientMapper.insert(tb);
return 'redirect:/select.do';
}
}
> com.mhys.crm.dao
TbPatientMapper.java
package com.mhys.crm.dao;
import com.mhys.crm.entity.TbPatient;
import java.util.List;
import org.apache.ibatis.annotations.Param;
public interface TbPatientMapper {
int deleteByPrimaryKey(Integer id);
int insert(TbPatient record);
TbPatient selectByPrimaryKey(Integer id);
List<TbPatient> selectAlls();
int updateByPrimaryKey(TbPatient record);
int update(Integer id);
List<TbPatient> selectAll(@Param('name')String name,@Param('type')String type,@Param('dep')String dap);
}
TbPatientMapper.xml
<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE mapper PUBLIC '-//mybatis.org//DTD Mapper 3.0//EN' 'http://mybatis.org/dtd/mybatis-3-mapper.dtd' >
<mapper namespace='com.mhys.crm.dao.TbPatientMapper' >
<resultMap id='BaseResultMap' type='com.mhys.crm.entity.TbPatient' >
<id column='id' property='id' jdbcType='INTEGER' />
<result column='name' property='name' jdbcType='VARCHAR' />
<result column='sex' property='sex' jdbcType='VARCHAR' />
<result column='age' property='age' jdbcType='INTEGER' />
<result column='phone' property='phone' jdbcType='VARCHAR' />
<result column='department' property='department' jdbcType='VARCHAR' />
<result column='type' property='type' jdbcType='VARCHAR' />
<result column='price' property='price' jdbcType='DECIMAL' />
<result column='state' property='state' jdbcType='INTEGER' />
<result column='register_time' property='registerTime' jdbcType='TIMESTAMP' />
</resultMap>
<delete id='deleteByPrimaryKey' parameterType='java.lang.Integer' >
delete from tb_patient
where id = #{id,jdbcType=INTEGER}
</delete>
<insert id='insert' parameterType='com.mhys.crm.entity.TbPatient' >
insert into tb_patient (id, name, sex,
age, phone, department,
type, price, state,
register_time)
values (#{id,jdbcType=INTEGER}, #{name,jdbcType=VARCHAR}, #{sex,jdbcType=VARCHAR},
#{age,jdbcType=INTEGER}, #{phone,jdbcType=VARCHAR}, #{department,jdbcType=VARCHAR},
#{type,jdbcType=VARCHAR}, #{price,jdbcType=DECIMAL}, #{state,jdbcType=INTEGER},
#{registerTime,jdbcType=TIMESTAMP})
</insert>
<update id='updateByPrimaryKey' parameterType='com.mhys.crm.entity.TbPatient' >
update tb_patient
set name = #{name,jdbcType=VARCHAR},
sex = #{sex,jdbcType=VARCHAR},
age = #{age,jdbcType=INTEGER},
phone = #{phone,jdbcType=VARCHAR},
department = #{department,jdbcType=VARCHAR},
type = #{type,jdbcType=VARCHAR},
price = #{price,jdbcType=DECIMAL},
state = #{state,jdbcType=INTEGER},
register_time = #{registerTime,jdbcType=TIMESTAMP}
where id = #{id,jdbcType=INTEGER}
</update>
<select id='selectAlls' resultMap='BaseResultMap' >
select id, name, sex, age, phone, department, type, price, state, register_time
from tb_patient
</select>
<select id='selectAll' resultMap='BaseResultMap' >
select id, name, sex, age, phone, department, type, price, state, register_time
from tb_patient
<where>
<if test='name!=null and name!='''>
and name = #{name}
</if>
<if test='type!=null and type!='''>
and type = #{type}
</if>
<if test='dep!=null and dep!='''>
and department = #{dep}
</if>
</where>
</select>
<update id='update' parameterType='com.mhys.crm.entity.TbPatient' >
update tb_patient set state=1 where id = #{id,jdbcType=INTEGER}
</update>
</mapper>
> com.mhys.crm.entity
TbPatient.java
package com.mhys.crm.entity;
import java.math.BigDecimal;
import java.util.Date;
public class TbPatient {
private Integer id;
private String name;
private String sex;
private Integer age;
private String phone;
private String department;
private String type;
private BigDecimal price;
private Integer state;
private Date registerTime;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name == null ? null : name.trim();
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex == null ? null : sex.trim();
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone == null ? null : phone.trim();
}
public String getDepartment() {
return department;
}
public void setDepartment(String department) {
this.department = department == null ? null : department.trim();
}
public String getType() {
return type;
}
public void setType(String type) {
this.type = type == null ? null : type.trim();
}
public BigDecimal getPrice() {
return price;
}
public void setPrice(BigDecimal price) {
this.price = price;
}
public Integer getState() {
return state;
}
public void setState(Integer state) {
this.state = state;
}
public Date getRegisterTime() {
return registerTime;
}
public void setRegisterTime(Date registerTime) {
this.registerTime = registerTime;
}
@Override
public String toString() {
return 'TbPatient [id=' + id + ', name=' + name + ', sex=' + sex + ', age=' + age + ', phone=' + phone
+ ', department=' + department + ', type=' + type + ', price=' + price + ', state=' + state
+ ', registerTime=' + registerTime + ']';
}
}
> com.mhys.crm.service.impl
HospitalService.java
package com.mhys.crm.service.impl;
import java.util.List;
import javax.annotation.Resource;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import com.mhys.crm.dao.TbPatientMapper;
import com.mhys.crm.entity.TbPatient;
public class HospitalService {
@Resource
private TbPatientMapper tbPatientMapper;
@RequestMapping('/select')
public String getList(Model model) {
List<TbPatient> selctAll = tbPatientMapper.selectAlls();
System.out.println(selctAll);
model.addAttribute('selctAll', selctAll);
return 'info';
}
@RequestMapping('/list')
public String getAll(Model model, String name, String type, String dep) {
List<TbPatient> selctAll = tbPatientMapper.selectAll(name, type, dep);
System.out.println(name+'==='+type+'==='+dep);
model.addAttribute('selctAll', selctAll);
return 'info';
}
@RequestMapping('/upd')
public String upDev(Model model,int id) {
int update = tbPatientMapper.update(id);
return 'redirect:/select.do';
}
@RequestMapping('/adds')
public String adds(Model model) {
return 'addInfo';
}
@RequestMapping('/insert')
public String toaddDev(Model model,TbPatient tb) {
tbPatientMapper.insert(tb);
return 'redirect:/select.do';
}
}
=resource
> mybatis
SqlMapConfig.xml
<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE configuration PUBLIC '-//mybatis.org//DTD Config 3.0//EN'
'http://mybatis.org/dtd/mybatis-3-config.dtd'>
<configuration>
<typeAliases>
<package name='com.mhys.crm.entity'/>
</typeAliases>
</configuration>
> spring
applicationContext-dao.xml
<?xml version='1.0' encoding='UTF-8'?>
<beans xmlns='http://www.springframework.org/schema/beans'
xmlns:context='http://www.springframework.org/schema/context' xmlns:p='http://www.springframework.org/schema/p'
xmlns:aop='http://www.springframework.org/schema/aop' xmlns:tx='http://www.springframework.org/schema/tx'
xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'
xsi:schemaLocation='http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.0.xsd
http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-4.0.xsd'>
<context:property-placeholder location='classpath:database.properties'></context:property-placeholder>
<bean id='dataSource' class='com.alibaba.druid.pool.DruidDataSource'>
<property name='driverClassName' value='${jdbc.driver}'></property>
<property name='Url' value='${jdbc.url}'></property>
<property name='username' value='${jdbc.username}'></property>
<property name='password' value='${jdbc.password}'></property>
</bean>
<!-- 配置SqlSessionFactory -->
<bean class='org.mybatis.spring.SqlSessionFactoryBean'>
<!-- 设置MyBatis核心配置文件 -->
<property name='configLocation' value='classpath:mybatis/SqlMapConfig.xml' />
<!-- 设置数据源 -->
<property name='dataSource' ref='dataSource' />
</bean>
<!-- 配置Mapper扫描 -->
<bean class='org.mybatis.spring.mapper.MapperScannerConfigurer'>
<!-- 设置Mapper扫描包 -->
<property name='basePackage' value='com.mhys.crm.dao' />
</bean>
<!-- 配置事务管理器 -->
<bean id='transactionManager' class='org.springframework.jdbc.datasource.DataSourceTransactionManager'>
<property name='dataSource' ref='dataSource'></property>
</bean>
<!-- 开启注解方式管理AOP事务 -->
<tx:annotation-driven transaction-manager='transactionManager' />
</beans>
applicationContext-service.xml
<?xml version='1.0' encoding='UTF-8'?>
<beans xmlns='http://www.springframework.org/schema/beans'
xmlns:context='http://www.springframework.org/schema/context' xmlns:p='http://www.springframework.org/schema/p'
xmlns:aop='http://www.springframework.org/schema/aop' xmlns:tx='http://www.springframework.org/schema/tx'
xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'
xsi:schemaLocation='http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.0.xsd
http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-4.0.xsd'>
<!-- 配置Service扫描 -->
<context:component-scan base-package='com' />
<bean id='transactionManager' class='org.springframework.jdbc.datasource.DataSourceTransactionManager'>
<property name='dataSource' ref='dataSource'></property>
</bean>
<tx:annotation-driven transaction-manager='transactionManager' />
</beans>
spring-mvc.xml
<?xml version='1.0' encoding='UTF-8'?><beans xmlns='http://www.springframework.org/schema/beans' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:p='http://www.springframework.org/schema/p' xmlns:context='http://www.springframework.org/schema/context' xmlns:mvc='http://www.springframework.org/schema/mvc' xsi:schemaLocation='http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd'> <!-- 配置Controller扫描 --> <context:component-scan base-package='com.mhys.crm.controller' /> <mvc:annotation-driven /> <bean class='org.springframework.web.servlet.view.InternalResourceViewResolver'> <property name='prefix' value='/WEB-INF/jsp/' /> <property name='suffix' value='.jsp' /> </bean></beans>
> database.properties
jdbc.url=jdbc:mysql://localhost:3306/hospital_db?useUnicode=true&characterEncoding=UTF-8&useSSL=false
jdbc.username=root
jdbc.password=123456
jdbc.driver=com.mysql.jdbc.Driver
=JSP页面
> /WEB-INF/jsp/
addInfo.jsp
<%@ page language='java' contentType='text/html; charset=utf-8'
pageEncoding='utf-8'%>
<!DOCTYPE html>
<html>
<head>
<meta charset='utf-8'>
<title>挂号</title>
</head>
<body>
<form action='insert.do' method='post'>
<table border='' cellspacing='' cellpadding=''>
<tr>
<td>姓名</td>
<td><input type='text' name='name' value='' /></td>
</tr>
<tr>
<td>性别</td>
<td><input type='text' name='sex' value=''/></td>
</tr>
<tr>
<td>年龄</td>
<td><input type='text' name='age' value=''/></td>
</tr>
<tr>
<td>电话</td>
<td><input type='text' name='phone' value=''/></td>
</tr>
<tr>
<td>医师类别</td>
<td><input type='text' name='department' value=''/></td>
</tr>
<tr>
<td>价格</td>
<td><input type='text' name='price' value=''/></td>
</tr>
<tr>
<td>挂号时间</td>
<td><input type='text' name='registerTime' value=''/></td>
</tr>
</table>
<input type='submit' value='确定' />
</form>
</body>
</html>
info.jsp
<%@ page language='java' contentType='text/html; charset=UTF-8'
pageEncoding='UTF-8'%>
<%@ taglib prefix='c' uri='http://java.sun.com/jsp/jstl/core'%>
<%@ taglib prefix='fmt' uri='http://java.sun.com/jsp/jstl/fmt'%>
<!DOCTYPE html>
<html>
<head>
<meta charset='UTF-8'>
<title>医院就诊挂号系统</title>
<style type='text/css'>
form{
padding: 20px;
}
#warp{
margin:0 auto;
width: 60%
}
</style>
</head>
<body>
<h1 align='center'>医院就诊挂号系统</h1>
<div id='warp'>
<form action='list.do'>
患者姓名:<input type='text' name='name'>
医师类别:
<select name='type'>
<option value='' >=不限=</option>
<option value='专家医师' >专家医师</option>
<option value='普通医师' >普通医师</option>
<option value='副主任医师' >副主任医师</option>
</select>
科室:<input type='text' name='dep'>
<input type='submit' value='查询'>
<input type='button' value='挂号' onclick='add()'>
</form>
<table style='margin-bottom: 30px;' width='100%' border='1px' cellpadding='11' cellspacing='0'>
<tr>
<th>编号</th>
<th>姓名</th>
<th>性别</th>
<th>年龄</th>
<th>电话</th>
<th>科室</th>
<th>医师类别</th>
<th>价格</th>
<th>挂号时间</th>
<th>状态</th>
<th>操作</th>
</tr>
<c:forEach var='list' items='${selctAll }'>
<tr>
<td>${list.id }</td>
<td>${list.name }</td>
<td>${list.sex }</td>
<td>${list.age }</td>
<td>${list.phone }</td>
<td>${list.department }</td>
<td>${list.type }</td>
<td>${list.price }</td>
<td><fmt:formatDate value='${list.registerTime }' pattern='yyyy-MM-dd'/></td>
<td>
<c:if test='${list.state==0}'>
未就诊
</c:if>
<c:if test='${list.state==1}'>
已就诊
</c:if>
</td>
<td>
<c:if test='${list.state==0}'>
<a href='javascript:if(confirm('确实要核销该挂号信息吗?'))location='upd.do?id=${list.id }''>核销</a>
</c:if>
<%-- <c:if test='${list.state==1}'>
已就诊
</c:if> --%>
</td>
</tr>
</c:forEach>
</table>
</div>
<script type='text/javascript'>
function add() {
location.href='adds.do';
}
</script>
</body>
</html>
index.jsp
<%@ page language='java' import='java.util.*' pageEncoding='UTF-8'%><!DOCTYPE html><%String path = request.getContextPath();String basePath = request.getScheme()+'://'+request.getServerName()+':'+request.getServerPort()+path;%><html><head><meta http-equiv='Content-Type' content='text/html; charset=UTF-8'><title>XXX系统</title></head><body><script> window.location.href='<%=basePath%>/select.do';</script></body></html>
赞 (0)