Java实战之医院管理系统的实现

目录

  • 项目介绍
  • 环境需要
  • 技术栈
  • 使用说明
  • 效果图展示
  • 核心代码
    • 用户管理控制层
    • 医生管理控制层
    • 病房管理控制层
【Java实战之医院管理系统的实现】
项目介绍 医院管理系统,分为管理员、医生、病人三种角色;
管理员主要功能包括:
首页、系统管理:医生管理、患者管理、药品管理;预约管理;病史管理;住院信息管理;管理员用户管理;
医生主要功能包括:首页、就医/查看病史;
病人主要功能包括:首页、病史、住院信息、挂号;

环境需要 1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。
2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA;
3.tomcat环境:Tomcat 7.x,8.x,9.x版本均可
4.硬件环境:windows 7/8/10 1G内存以上;或者 Mac OS;
5.是否Maven项目: 是;查看源码目录中是否包含pom.xml;若包含,则为maven项目,否则为非maven项目
6.数据库:MySql 5.7版本;

技术栈 1. 后端:SpringBoot
2. 前端:Layui+Freemaker

使用说明 1. 使用Navicat或者其它工具,在mysql中创建对应名称的数据库,并导入项目的sql文件;
2. 使用IDEA/Eclipse/MyEclipse导入项目,Eclipse/MyEclipse导入时,若为maven项目请选择maven;
若为maven项目,导入成功后请执行maven clean; maven install命令
3. 将项目中application.yml配置文件中的数据库配置改为自己的配置,配置tomcat,然后运行;
4. 运行项目,输入http://localhost:8088 登录

效果图展示 Java实战之医院管理系统的实现
文章图片

Java实战之医院管理系统的实现
文章图片

Java实战之医院管理系统的实现
文章图片

Java实战之医院管理系统的实现
文章图片

Java实战之医院管理系统的实现
文章图片

Java实战之医院管理系统的实现
文章图片


核心代码
用户管理控制层
@RestController@RequestMapping(value = "https://www.it610.com/user")@Api(tags = "用户管理API")public class UserController { @Autowiredprivate IUserService iUserService; /*** 登录验证** @param reqVO* @param model* @return*/@RequestMapping(value = "https://www.it610.com/dologin", method = RequestMethod.POST)public BaseResponse doLogin(@RequestBody @Validated UserLoginReqVO reqVO, Model model) { return iUserService.doLogin(reqVO); } /*** 保存用户注册信息,向用户发送激活链接** @param reqVO* @return*/@RequestMapping(value = "https://www.it610.com/doregister", method = RequestMethod.POST)public BaseResponse registered(@RequestBody @Validated UserRegisterReqVO reqVO, Model model) { return iUserService.saveUserAndSendEmail(reqVO); } /*** 获取登录日志** @param reqVO* @return*/@RequestMapping(value = "https://www.it610.com/getLoginfor",method = RequestMethod.GET)public PageRspVO getLoginfor(BasePageReqVO reqVO) { return iUserService.getLoginfor(reqVO); } /*** 修改密码** @param reqVO* @return*/@PostMapping(value = "https://www.it610.com/changePassword")public BaseResponse changePassword(@RequestBody @Validated ChangePasswordReqVO reqVO) { return iUserService.changePassword(reqVO); } /*** 个人资料设置** @return*/@PostMapping(value = "https://www.it610.com/getUserInfo")public List getUserInfo() { return iUserService.getUserInfo(); } @PostMapping(value = "https://www.it610.com/changeUserInfo")public BaseResponse changeUserInfo(@RequestBody @Validated UserInfoVO reqVO) { returniUserService.changeUserInfo(reqVO); } @PostMapping(value = "https://www.it610.com/getAnnContent")public AnnRspVO getAnnContent(@RequestParam String id) { return iUserService.getAnnContent(id); } @PostMapping(value = "https://www.it610.com/addAnotherRole")public BaseResponse addAnotherRole(@RequestBody @Validated AccountRoleVO reqVO) { return iUserService.addAnotherRole(reqVO); } /*** 获取所有角色* @param* @return*/@PostMapping(value = "https://www.it610.com/getAllRole")public List getAllRole() {return iUserService.getAllRole(); } }

@Controllerpublic class DeptController {@Autowiredprivate DeptService deptService; /*** 分页查询*/@RequestMapping("/findDept")public String findDept(String deptNo, String deptName,Integer pageIndex, Integer pageSize, Model model,HttpSession session){PageInfo de = deptService.findPageInfo(deptNo,deptName, pageIndex,pageSize); model.addAttribute("de",de); session.setAttribute("u",deptNo); session.setAttribute("t",deptName); return "Dept_list"; } /*** 添加管理员信息*/@RequestMapping(value = "https://www.it610.com/addDept" ,method = RequestMethod.POST)@ResponseBodypublic String addDept(@RequestBody Dept dept) {int a = deptService.addDept(dept); return "Dept_list"; } /*** 修改信息*/@RequestMapping( value = "https://www.it610.com/updateDept", method = RequestMethod.POST)public String updateDept(Dept dept) {int a = deptService.updateDept(dept); return "redirect:/findDept"; } /*** 根据Id搜索; */@RequestMapping("/findDeptById")public String findDeptById(Integer deptId, HttpSession session) {Dept de2= deptService.findDeptById(deptId); session.setAttribute("de2",de2); return "Dept_edit"; } /*** 导出Excel*/@RequestMapping(value = "https://www.it610.com/exportDeptlist" , method = RequestMethod.POST)@ResponseBodypublic List exportDept(){List depts = deptService.getAll(); return depts; } /*** 部门人员信息查询*/@RequestMapping(value = "https://www.it610.com/findDeptPersonnel")public String findClassStudent(Dept dept,Model model, HttpSession session) {List dep = deptService.findDeptPersonnel(dept); model.addAttribute("dep",dep); return "dept_Personnellist"; } }


医生管理控制层
/** * 医生管理控制层 */ @Controller@RequestMapping("/doctor")public class DoctorController { @Autowiredprivate DoctorService doctorService; @Autowiredprivate UserService userService; @Autowiredprivate RoleService roleService; @Autowiredprivate OperaterLogService operaterLogService; @Autowiredprivate DepartmentService departmentService; @Autowiredprivate OrderReceivingService orderReceivingService; @Autowiredprivate BedAllotService bedAllotService; /*** 跳转医生列表页面* @param model* @param doctor* @param pageBean* @return*/@RequestMapping(value = "https://www.it610.com/list")public String list(Model model, Doctor doctor, PageBean pageBean) {model.addAttribute("title", "医生列表"); if (doctor.getUser() != null) {model.addAttribute("name", doctor.getUser().getName()); }model.addAttribute("pageBean", doctorService.findList(doctor, pageBean)); return "admin/doctor/list"; } /*** 医生添加页面* @param model* @return*/@RequestMapping(value = "https://www.it610.com/add", method = RequestMethod.GET)public String add(Model model) { model.addAttribute("departments", departmentService.findAllDepartment()); return "admin/doctor/add"; } /*** 医生添加提交* @param doctor* @return*/@RequestMapping(value = "https://www.it610.com/add", method = RequestMethod.POST)@ResponseBodypublic Result add(Doctor doctor) { CodeMsg validate = ValidateEntityUtil.validate(doctor); if (validate.getCode() != CodeMsg.SUCCESS.getCode()) {return Result.error(validate); }if(Objects.isNull(doctor.getUser().getEmail())){return Result.error(CodeMsg.ADMIN_PUBLIC_NO_ISEXIST_EMAIL); }if(Objects.isNull(doctor.getUser().getMobile())){return Result.error(CodeMsg.ADMIN_PUBLIC_NO_ISEXIST_MOBILE); } if (!StringUtil.emailFormat(doctor.getUser().getEmail())) {return Result.error(CodeMsg.ADMIN_PUBLIC_EMAIL); }if (!StringUtil.isMobile(doctor.getUser().getMobile())) {return Result.error(CodeMsg.ADMIN_PUBLIC_MOBILE); } Role role = roleService.find(Doctor.DOCTOR_ROLE_ID); String dNo = StringUtil.generateSn(Doctor.PATIENT_ROLE_DNO); int age = DateUtil.getAge(doctor.getUser().getBirthDay()); if (age < 0) {return Result.error(CodeMsg.ADMIN_PUBLIC_AGE); } doctor.setDoctorDno(dNo); doctor.getUser().setPassword(dNo); doctor.getUser().setUsername(dNo); doctor.getUser().setRole(role); User user = doctor.getUser(); user.setAge(age); User save = userService.save(user); if (userService.save(user) == null) {return Result.error(CodeMsg.ADMIN_USE_ADD_ERROR); }operaterLogService.add("添加用户,用户名:" + user.getUsername()); doctor.setUser(save); if (doctorService.save(doctor) == null) {return Result.error(CodeMsg.ADMIN_DOCTOR_ADD_EXIST); }return Result.success(true); } /*** 医生修改页面* @param model* @param id* @return*/@RequestMapping(value = "https://www.it610.com/edit", method = RequestMethod.GET)public String edit(Model model, @RequestParam(name = "id") Long id) {model.addAttribute("doctor", doctorService.find(id)); model.addAttribute("departments", departmentService.findAllDepartment()); return "admin/doctor/edit"; } /*** 医生修改提交* @param doctor* @return*/@RequestMapping(value = "https://www.it610.com/edit", method = RequestMethod.POST)@ResponseBodypublic Result edit(Doctor doctor) {Doctor findDoctor = doctorService.find(doctor.getId()); List doctors = doctorService.findByDoctorDno(findDoctor.getDoctorDno()); if (doctors.size() > 1 || doctors.size() <= 0) {return Result.error(CodeMsg.ADMIN_PATIENT_PNO_ERROR); } if (doctors.get(0).getId() != doctor.getId()) {return Result.error(CodeMsg.ADMIN_PATIENT_PNO_ERROR); }if(Objects.isNull(doctor.getUser().getEmail())){return Result.error(CodeMsg.ADMIN_PUBLIC_NO_ISEXIST_EMAIL); }if(Objects.isNull(doctor.getUser().getMobile())){return Result.error(CodeMsg.ADMIN_PUBLIC_NO_ISEXIST_MOBILE); }if (!StringUtil.emailFormat(doctor.getUser().getEmail())) {return Result.error(CodeMsg.ADMIN_PUBLIC_EMAIL); }if (!StringUtil.isMobile(doctor.getUser().getMobile())) {return Result.error(CodeMsg.ADMIN_PUBLIC_MOBILE); } int age = DateUtil.getAge(doctor.getUser().getBirthDay()); if (age < 0) {return Result.error(CodeMsg.ADMIN_PUBLIC_AGE); } findDoctor.setDepartment(doctor.getDepartment()); findDoctor.setDescription(doctor.getDescription()); findDoctor.setExperience(doctor.getExperience()); User user = doctor.getUser(); user.setAge(age); BeanUtils.copyProperties(user, findDoctor.getUser(), "id", "createTime", "updateTime", "password", "username", "role"); userService.save(findDoctor.getUser()); doctorService.save(findDoctor); return Result.success(true); } /*** 删除医生用户* @param id* @return*/@RequestMapping(value = "https://www.it610.com/delete", method = RequestMethod.POST)@ResponseBodypublic Result delete(@RequestParam(name = "id", required = true) Long id) {try {Doctor doctor = doctorService.find(id); doctorService.deleteById(id); userService.delete(doctor.getUser().getId()); } catch (Exception e) {return Result.error(CodeMsg.ADMIN_DOCTOR_DELETE_ERROR); }operaterLogService.add("添加用户,用户ID:" + id); return Result.success(true); } /*** 修改个人出诊状态页面* @param model* @return*/@RequestMapping(value = "https://www.it610.com/updateStatus", method = RequestMethod.GET)public String updateDoctorStatus(Model model) {Doctor doctor = doctorService.findByLoginDoctorUser(); model.addAttribute("title","个人出诊信息修改"); model.addAttribute("doctor", doctor); return "admin/doctor/visitingStatus"; } /*** 提交修改个人出诊状态* @param doctor* @return*/@RequestMapping(value = "https://www.it610.com/updateStatus", method = RequestMethod.POST)@ResponseBodypublic Result editStatus(Doctor doctor) {Doctor doc = doctorService.findByLoginDoctorUser(); if(Objects.isNull(doctor.getUser().getEmail())){return Result.error(CodeMsg.ADMIN_PUBLIC_NO_ISEXIST_EMAIL); }if(Objects.isNull(doctor.getUser().getMobile())){return Result.error(CodeMsg.ADMIN_PUBLIC_NO_ISEXIST_MOBILE); }if (!StringUtil.isMobile(doctor.getUser().getMobile())) {return Result.error(CodeMsg.ADMIN_PUBLIC_MOBILE); }if (!StringUtil.emailFormat(doctor.getUser().getEmail())) {return Result.error(CodeMsg.ADMIN_PUBLIC_EMAIL); }User user = doc.getUser(); user.setEmail(doctor.getUser().getEmail()); user.setMobile(doctor.getUser().getMobile()); user.setStatus(doctor.getStatus()); doc.setStatus(doctor.getStatus()); doc.setDescription(doctor.getDescription()); doc.setExperience(doctor.getExperience()); BeanUtils.copyProperties(user, doctor.getUser(), "id", "createTime", "updateTime", "password", "username", "role", "sex", "age", "birthday"); doctorService.save(doc); return Result.success(true); } /*** 医生查询接单记录* @param model* @param pageBean* @return*/@RequestMapping(value = "https://www.it610.com/orderRecord",method = RequestMethod.GET)public String doctorOrderRecords(Model model, PageBean pageBean) {//获取医生登录的信息Doctor loginDoctorUser = doctorService.findByLoginDoctorUser(); model.addAttribute("title", "出诊信息"); model.addAttribute("pageBean", orderReceivingService.findByDoctorId(pageBean,loginDoctorUser.getId())); return "admin/doctor/orderRecord"; } /*** 查看自己科室所有医生信息* @param model* @param pageBean* @return*/@RequestMapping(value = "https://www.it610.com/findByDepartment", method = RequestMethod.GET)public String AllDoctorByDepartment(Model model,PageBean pageBean) {Doctor loginDoctorUser = doctorService.findByLoginDoctorUser(); model.addAttribute("title", "本科室所有医生列表"); model.addAttribute("pageBean", doctorService.findAllByDepartment(pageBean, loginDoctorUser.getDepartment().getId())); return "admin/doctor/doctorInformation"; } /*** 医生完成出诊订单* @param id* @return*/@RequestMapping(value = "https://www.it610.com/orderRecord",method = RequestMethod.POST)@ResponseBodypublic ResultmodifyVisitStatus(Long id){boolean flag = doctorService.modifyVisitStatus(id); if (flag){return Result.success(true); }return Result.error(CodeMsg.ADMIN_DOCTOR_CANNOT_REPEATED); } /*** 管理员查看所有订单信息* @param model* @param orderReceiving* @param pageBean* @return*/@RequestMapping(value="https://www.it610.com/allOrderInformation",method = RequestMethod.GET)public String findAll(Model model,OrderReceiving orderReceiving, PageBean pageBean){model.addAttribute("title","出诊信息"); model.addAttribute("pageBean",orderReceivingService.findList(orderReceiving,pageBean)); return "admin/doctor/allOrderInformation"; } /*** 医生查询负责的住院信息*/@RequestMapping(value="https://www.it610.com/bedAllot")public String bedAllotSelf(Model model,PageBean pageBean){Doctor loginDoctorUser = doctorService.findByLoginDoctorUser(); Long doctorId = loginDoctorUser.getId(); model.addAttribute("title","住院信息"); model.addAttribute("pageBean",bedAllotService.findByDoctor(pageBean,doctorId)); return "admin/doctor/bedAllot"; } }


病房管理控制层
/*** * 病房管理控制层 */@Controller@RequestMapping("/room")public class RoomController {@Autowiredprivate RoomService roomService; @Autowiredprivate OperaterLogService operaterLogService; @Autowiredprivate BedService bedService; @Autowiredprivate RoomTypeService roomTypeService; /**** 病房分页查询* @param model* @param pageBean* @param room* @return*/@RequestMapping("/list")String list(Model model, PageBean pageBean, Room room){model.addAttribute("title","病房列表"); model.addAttribute("roomNo", room.getRoomNo()); model.addAttribute("pageBean",roomService.findAll(room,pageBean)); return "admin/room/list"; }/*** 新增病房页面* @param model* @return*/@RequestMapping(value="https://www.it610.com/add")public String add(Model model){model.addAttribute("roomType",roomTypeService.findList()); return "admin/room/add"; } /*** 病房添加表单提交处理* @param room* @return*/@RequestMapping(value="https://www.it610.com/add",method= RequestMethod.POST)@ResponseBodypublic Result add(Room room){//用统一验证实体方法验证是否合法CodeMsg validate = ValidateEntityUtil.validate(room); if(validate.getCode() != CodeMsg.SUCCESS.getCode()){return Result.error(validate); }//设置可用床数int total = room.getTotal(); room.setUsable(total); if(Objects.isNull(room.getRoomNo())){return Result.error(CodeMsg.ADMIN_ROOM_NO_ISEXIST); }if(roomService.isExistRoomNo(room.getRoomNo(),0L)){return Result.error(CodeMsg.ADMIN_ROOM_EXIST); }//到这说明一切符合条件,进行数据库新增if(roomService.save(room) == null){return Result.error(CodeMsg.ADMIN_ROOM_ADD_ERROR); } /*//判断是否床位存在if(bedService.find(room.getId())!=null){return Result.error(CodeMsg.ADMIN_BED_EXIST); }*///循环total向床位表添加相应床位for (int i = 0 ; i edit(Room room){//用统一验证实体方法验证是否合法CodeMsg validate = ValidateEntityUtil.validate(room); if(validate.getCode() != CodeMsg.SUCCESS.getCode()){return Result.error(validate); }if(room.getId() == null || room.getId().longValue() <= 0){return Result.error(CodeMsg.ADMIN_ROOM_NO_EXIST); }if(roomService.isExistRoomNo(room.getRoomNo(),room.getId())){return Result.error(CodeMsg.ADMIN_ROOM_EXIST); }//到这说明一切符合条件,进行数据库保存Room findById = roomService.find(room.getId()); //将提交的科室信息指定字段复制到已存在的RoomType对象中,该方法会覆盖新字段内容BeanUtils.copyProperties(room, findById, "id","createTime","updateTime","total","usable"); if(roomService.save(findById) == null){return Result.error(CodeMsg.ADMIN_ROOM_EDIT_ERROR); }operaterLogService.add("编辑病房,病房号:" + room.getRoomNo()); return Result.success(true); }*/ /*** 删除病房* @param id* @return*/@RequestMapping(value="https://www.it610.com/delete",method=RequestMethod.POST)@ResponseBodypublic Result delete(@RequestParam(name="id",required=true)Long id){try {roomService.delete(id); } catch (Exception e) {return Result.error(CodeMsg.ADMIN_ROOM_DELETE_ERROR); }operaterLogService.add("删除病房,病房ID:" + id); return Result.success(true); }}

以上就是Java实战之医院管理系统的实现的详细内容,更多关于Java医院管理系统的资料请关注脚本之家其它相关文章!

    推荐阅读