天天看點

基于springboot的醫院管理系統

項目描述

臨近學期結束,還是畢業設計,你還在做java程式網絡程式設計,期末作業,老師的作業要求覺得大了嗎?不知道畢業設計該怎麼辦?網頁功能的數量是否太多?沒有合适的類型或系統?等等。這裡,你想解決的問題,今天給在家介紹一篇基于Springboot開發的醫院管理系統。

功能需求

本醫療系統通過分析和确定系統的角色和功能劃分,按照業務合理區分為不同的菜單功能子產品。從求醫患者和醫院相關管理人員的角度出發,對每個功能的需求實作點進行人性化詳細的構思。對每個功能的細節點進行分析設計整合完成整個醫療系統的設計。

具備以下功能:

  1. 門診管理子產品:即使用者挂号、處方規劃、項目規劃、項目繳費、項目檢查、藥品繳費、門診患者庫。
  2. 住院管理子產品:即入院登記、繳費管理、藥品記賬、項目記賬、出院結算、費用詳情等。
  3. 系統管理子產品:即菜單管理、角色管理、使用者管理、圖示管理、資料源監控等。
  4. 統計管理子產品:門診月年度統計、住院月年度統計、醫生統計對比、門診當天統計等。
  5. 資料中心:科室中心、醫生清單、藥品産地、挂号類型、倉庫、經辦人、計量機關、供貨商等。
  6. 藥房管理子產品:藥房詳情、門診取藥、住院取藥等。
  7. 倉庫管理子產品:入庫單、庫存查詢、出庫單、操作記錄、藥品回收等。

系統功能子產品架構圖

基于springboot的醫院管理系統
部分效果圖

登入界面:

基于springboot的醫院管理系統

系統首頁

基于springboot的醫院管理系統

處方劃價

基于springboot的醫院管理系統

使用者管理

基于springboot的醫院管理系統

庫存藥品資訊管理

基于springboot的醫院管理系統

菜單管理

基于springboot的醫院管理系統

使用者挂号界面

基于springboot的醫院管理系統

資料庫設計

系統中用到了36張表,針對每個表都進行了設計,下面對部分核心表進行彙總羅列展示。

(1)角色表

基于springboot的醫院管理系統

(2)治療報告表

基于springboot的醫院管理系統

(3)使用者角色表

基于springboot的醫院管理系統

(4)權限表

基于springboot的醫院管理系統

部分代碼

@Controller
@RequestMapping("user")
public class UserController {
    @Autowired
    private UserService userService;
    @RequestMapping("selectAllUser")
    @ResponseBody
    public Object selectAllUser(Integer page,Integer limit,User user){
        PageHelper.startPage(page, limit);
        List<User> allUser = userService.selectAllUser(user);
        PageInfo pageInfo = new PageInfo(allUser);
        Map<String, Object> tableData = new HashMap<String, Object>();
        //這是layui要求傳回的json資料格式
        tableData.put("code", 0);
        tableData.put("msg", "");
        //将全部資料的條數作為count傳給前台(一共多少條)
        tableData.put("count", pageInfo.getTotal());
        //将分頁後的資料傳回(每頁要顯示的資料)
        tableData.put("data", pageInfo.getList());

        return tableData;
    }
    /*
    * 修改使用者
    * */
    @RequestMapping("updateUser")
    @ResponseBody
    public Object updateUser(User user){
        int i1 = userService.checkUser(user);
        if(i1==1) {
            return "目前登陸名已存在";
        }else{
            int i = userService.updateUser(user);
            if(i>0){
                return "修改成功";
            }else{
                return "修改失敗";
            }
        }


    }
    /*
     * 删除使用者
     * */
    @RequestMapping("deleteUser")
    @ResponseBody
    public Object deleteUser(Integer userid){
        userService.deleteUser(userid);
       return "删除成功";
    }
    /*
     * 初始化使用者配置設定角色
     * */
    @RequestMapping("initUserRole")
    @ResponseBody
    public DataGridView initUserRole(Integer userid){
        return userService.queryUserRole(userid);
    }
    /*
     * 添加使用者
     * */
    @RequestMapping("addUser")
    @ResponseBody
    public Object addUser(User user){
        int i1 = userService.checkUser(user);
        if(i1==1){
            return "目前登陸名已存在";
        }else {
            //加鹽
            String salt = UserCredentialsMatcher.generateSalt(6);
            //MD5加密疊代兩次
            user.setPwd(UserCredentialsMatcher.encryptPassword("md5", "123456", salt, 2));
            user.setType(2);
            user.setSalt(salt);
            System.out.println(salt);
            int i = userService.addUser(user);
            if (i > 0) {
                return "添加成功";
            } else {
                return "添加失敗";
            }
        }
    }
    /*
     * 重置密碼
     * */
    @RequestMapping("resetUserPwd")
    @ResponseBody
    public Object resetUserPwd(User user,Integer userid){
        user.setUserid(userid);
        //加鹽
        String salt = UserCredentialsMatcher.generateSalt(6);
        //MD5加密疊代兩次
        user.setPwd(UserCredentialsMatcher.encryptPassword("md5", "123456", salt, 2));
        user.setType(2);
        user.setSalt(salt);
        userService.resetUserPwd(user);
        return "重置成功";

    }
    /*
     * 儲存使用者和角色的關系
     * */
    @RequestMapping("saveUserRole")
    @ResponseBody
    public Object saveUserRole(UserRole userRole){
        userService.saveUserRole(userRole);
        return "配置設定成功";
    }    /*
     * 修改資料
     * */
    @RequestMapping("editLogin")
    @ResponseBody
    public Object editLogin(User user){
        int i = userService.editLogin(user);
        if(i==1){
            return "修改成功";
        }else{
            return "修改失敗";
        }

    }
    @Autowired
    private MenuService menuService;
    @RequestMapping("editPwd")
    @ResponseBody
    public Object editPwd(User user,String loginname,String pwd,String pwd1){
        //第一步:建立subject
        Subject subject = SecurityUtils.getSubject();
        //第二步:封裝token  憑證
        UsernamePasswordToken token = new UsernamePasswordToken(loginname, pwd);
        try {
            //隻要能通過認證就能通過了

            subject.login(token);
            //加鹽
            String salt = UserCredentialsMatcher.generateSalt(6);
            //MD5加密疊代兩次
            user.setPwd(UserCredentialsMatcher.encryptPassword("md5", pwd1, salt, 2));
            user.setSalt(salt);
            userService.editPwd(user);
            return "1";//修改成功
        } catch (IncorrectCredentialsException e) {
            return "0";//密碼錯誤
        }

    }
}
           

安裝部署需求

利用tomcat啟動運作

總體設計

本系統是一個基于springboot的微服務架構,前端使用熟知的JavaScript腳本實作系統頁面,在後期的釋出通過Tomcat伺服器部署,也可以通過nginx進行服務代理或者內建負載。

系統設計了基于角色的權限管控,超級管理者可以建立不同的角色,給每個使用者配置設定不用的角色,每個角色的使用者配置設定不同的工作任務和權限按鈕。這個系統的設計采用MVC模式,按照視圖、控制、資料處理、持久層劃分實作。簡化了大量的配置和程式代碼的耦合性。資料庫采用免費開源的MySQL資料庫,即節約了成本能夠支撐起真個系統業務資料和資訊化資料的存儲。

本項目用到的技術和架構

1.開發語言:Java

2.開發模式:B/S

3.資料庫:MySQL

本項目中的關鍵點

此系統的開發采用java語言開發,基于B/S結構,這些開發環境使系統更加完善。使用到的工具和技術都是開源免費的。

環境工具

開發工具 Eclipse/IDEA

語言 JDK1.8 、VUE、springboot,mybatis

硬體:筆記本電腦;

軟體:Tomcat9.0 Web伺服器、Navicat資料庫用戶端、MySQL;

作業系統:Windows 10;

其它軟體:截圖工具、常用浏覽器;

微信掃下方二維碼關注公衆号,經常分享一些技術上的了解文章。

基于springboot的醫院管理系統