Java医院就诊挂号系统

2021-09-18 15:12:32 浏览数 (1)

本文链接:

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。

二、实现效果

实现能够对患者姓名,医师类别、科室的模糊查询,用户点击核销以后状态变为已就诊。

点击挂号实现基本信息的添加

三、实现代码

数据库:

代码语言:javascript复制
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
代码语言:javascript复制
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
代码语言:javascript复制
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

代码语言:javascript复制
<?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
代码语言:javascript复制
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
代码语言:javascript复制
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
代码语言:javascript复制
<?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
代码语言:javascript复制
<?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

代码语言:javascript复制
<?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

代码语言:javascript复制
<?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
代码语言:javascript复制
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
代码语言:javascript复制
<%@ 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

代码语言:javascript复制
<%@ 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">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
    医师类别:
        <select name="type">
          <option value="" >=不限=</option>
          <option value="专家医师" >专家医师</option>
          <option value="普通医师" >普通医师</option>
          <option value="副主任医师" >副主任医师</option>
        </select>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
    科室:<input type="text" name="dep">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
    <input type="submit" value="查询">&nbsp;&nbsp;&nbsp;
    <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

代码语言:javascript复制
<%@ 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>

源码下载

链接:

https://pan.baidu.com/s/1tUxW8LRC-AerI5O5gE7gLw

提取码: x56u

0 人点赞