Java實(shí)戰(zhàn)項(xiàng)目 醫(yī)院預(yù)約掛號系統(tǒng)
一、項(xiàng)目簡述
功能: 用戶分為患者,醫(yī)生,管理員,患者可進(jìn)行注冊選擇醫(yī)生 掛號,選擇日期,選擇號源,醫(yī)生可進(jìn)行接診,管理員可 對用戶,醫(yī)生信息的維護(hù)等等功能。
二、項(xiàng)目運(yùn)行
環(huán)境配置: Jdk1.8 + Tomcat8.5 + mysql + Eclispe (IntelliJ IDEA,Eclispe,MyEclispe,Sts 都支持)
項(xiàng)目技術(shù): Jdbc+ Servlert + Jsp + css + JavaScript + JQuery + Ajax + Fileupload等等。
登錄攔截器代碼:
/** * 登錄攔截器 * @author Administrator * */ @Component public class LoginInterceptor implements HandlerInterceptor{ private Logger log = LoggerFactory.getLogger(LoginInterceptor.class); @Autowired private SiteConfig siteConfig; @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler){ String requestURI = request.getRequestURI(); HttpSession session = request.getSession(); session.setAttribute(SessionConstant.SESSION_USER_AUTH_KEY, AppConfig.ORDER_AUTH); Object attribute = session.getAttribute(SessionConstant.SESSION_USER_LOGIN_KEY); if(attribute == null){ log.info("用戶還未登錄或者session失效,重定向到登錄頁面,當(dāng)前URL=" + requestURI); //首先判斷是否是ajax請求 if(StringUtil.isAjax(request)){ //表示是ajax請求 try { response.setCharacterEncoding("UTF-8"); response.getWriter().write(JSON.toJSONString(CodeMsg.USER_SESSION_EXPIRED)); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } return false; } //說明是普通的請求,可直接重定向到登錄頁面 //用戶還未登錄或者session失效,重定向到登錄頁面 try { response.sendRedirect("/system/login"); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } return false; } log.info("該請求符合登錄要求,放行" + requestURI); if(!StringUtil.isAjax(request)){ //若不是ajax請求,則將菜單信息放入頁面模板變量 User user = (User)attribute; List<Menu> authorities = user.getRole().getAuthorities(); request.setAttribute("userTopMenus", MenuUtil.getTopMenus(authorities)); List<Menu> secondMenus = MenuUtil.getSecondMenus(user.getRole().getAuthorities()); request.setAttribute("userSecondMenus", secondMenus); request.setAttribute("userThirdMenus", MenuUtil.getChildren(MenuUtil.getMenuIdByUrl(requestURI,secondMenus),authorities)); request.setAttribute("siteName", siteConfig.getSiteName()); request.setAttribute("siteUrl", siteConfig.getSiteUrl()); } return true; } }
醫(yī)院預(yù)約掛號系統(tǒng)后臺管理頁面代碼:
<!DOCTYPE html> <html lang="zh"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no"/> <title>${siteName!""}后臺管理系統(tǒng)主頁</title> <#include "../common/header.ftl"/> </head> <body> <div class="lyear-layout-web"> <!--左側(cè)導(dǎo)航--> <aside class="lyear-layout-sidebar"> <!-- logo --> <div id="logo" class="sidebar-header"> <a href="/system/index" rel="external nofollow" ><img src="/admin/images/logo-sidebar.png" title="${siteName!""}" alt="${siteName!""}"/></a> </div> <div class="lyear-layout-sidebar-scroll"> <#include "../common/left-menu.ftl"/> </div> </aside> <!--End 左側(cè)導(dǎo)航--> <#include "../common/header-menu.ftl"/> <!--頁面主要內(nèi)容--> <main class="lyear-layout-content"> <div class="container-fluid"> <div class="row"> <div class="col-sm-6 col-lg-3"> <div class="card bg-primary"> <div class="card-body clearfix"> <div class="pull-right"> <p class="h6 text-white m-t-0">備份文件</p> <p class="h3 text-white m-b-0">${databaseBackupTotal!"0"}</p> </div> <div class="pull-left"><span class="img-avatar img-avatar-48 bg-translucent"><i class="mdi mdi-database fa-1-5x"></i></span></div> </div> </div> </div> <div class="col-sm-6 col-lg-3"> <div class="card bg-danger"> <div class="card-body clearfix"> <div class="pull-right"> <p class="h6 text-white m-t-0">用戶總數(shù)</p> <p class="h3 text-white m-b-0">${userTotal!"0"}</p> </div> <div class="pull-left"><span class="img-avatar img-avatar-48 bg-translucent"><i class="mdi mdi-account fa-1-5x"></i></span></div> </div> </div> </div> <div class="col-sm-6 col-lg-3"> <div class="card bg-success"> <div class="card-body clearfix"> <div class="pull-right"> <p class="h6 text-white m-t-0">當(dāng)前在線用戶</p> <p class="h3 text-white m-b-0">${onlineUserTotal!"0"}</p> </div> <div class="pull-left"><span class="img-avatar img-avatar-48 bg-translucent"><i class="mdi mdi-account-multiple fa-1-5x"></i></span></div> </div> </div> </div> <div class="col-sm-6 col-lg-3"> <div class="card bg-purple"> <div class="card-body clearfix"> <div class="pull-right"> <p class="h6 text-white m-t-0">操作日志</p> <p class="h3 text-white m-b-0">${operatorLogTotal!"0"}條</p> </div> <div class="pull-left"> <span class="img-avatar img-avatar-48 bg-translucent"><i class="mdi mdi-keyboard-close fa-1-5x"></i></span> </div> </div> </div> </div> </div> <div class="row"> <div class="col-lg-12"> <div class="card"> <div class="card-toolbar clearfix"> <#include "../common/third-menu.ftl"/> </div> <div class="card-body"> <div class="table-responsive"> <table class="table table-bordered"> <thead> <tr> <th>醫(yī)生編號</th> <th>醫(yī)生名稱</th> <th>病人名稱</th> <th>所屬科室</th> <th>支付狀態(tài)</th> <th>出診狀態(tài)</th> </tr> </thead> <tbody> <#if orderReceivings?size gt 0> <#list orderReceivings as orderReceiving> <tr> <td style="vertical-align:middle;">${orderReceiving.doctor.doctorDno}</td> <td style="vertical-align:middle;">${orderReceiving.doctor.user.name}</td> <td style="vertical-align:middle;">${orderReceiving.orderRegistration.patient.user.name}</td> <td style="vertical-align:middle;">${orderReceiving.doctor.department.name}</td> <td style="vertical-align:middle;"> <#if orderReceiving.payStatus == 1> <font class="text-warning">未支付</font> <#else> <font class="text-success">已支付</font> </#if> </td> <td style="vertical-align:middle;"> <#if orderReceiving.status == 1> <font class="text-warning">未完成</font> <#else> <font class="text-success" id="tab1">已完成</font> </#if> </td> </tr> </#list> </#if> </tbody> </table> </div> </div> </div> </div> </div> </div> </main> <!--End 頁面主要內(nèi)容--> </div> </div> <#include "../common/footer.ftl"/> <script type="text/javascript" src="/admin/js/perfect-scrollbar.min.js"></script> <script type="text/javascript" src="/admin/js/main.min.js"></script> <script type="text/javascript"> $(document).ready(function () { }); </script> </body> </html>
到此這篇關(guān)于Java實(shí)戰(zhàn)項(xiàng)目 醫(yī)院預(yù)約掛號系統(tǒng)的文章就介紹到這了,更多相關(guān)Java 醫(yī)院掛號系統(tǒng)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- Java實(shí)戰(zhàn)寵物醫(yī)院預(yù)約掛號系統(tǒng)的實(shí)現(xiàn)流程
- Java 實(shí)戰(zhàn)練手項(xiàng)目之醫(yī)院預(yù)約掛號系統(tǒng)的實(shí)現(xiàn)流程
- Java 實(shí)戰(zhàn)項(xiàng)目錘煉之醫(yī)院門診收費(fèi)管理系統(tǒng)的實(shí)現(xiàn)流程
- Java+Swing實(shí)現(xiàn)醫(yī)院管理系統(tǒng)的完整代碼
- Java實(shí)現(xiàn)醫(yī)院管理系統(tǒng)
- Java畢業(yè)設(shè)計(jì)實(shí)戰(zhàn)項(xiàng)目之在線服裝銷售商城系統(tǒng)的實(shí)現(xiàn)流程
- Java畢業(yè)設(shè)計(jì)實(shí)戰(zhàn)項(xiàng)目之倉庫管理系統(tǒng)的實(shí)現(xiàn)流程
- Java 實(shí)戰(zhàn)項(xiàng)目之畢業(yè)設(shè)計(jì)管理系統(tǒng)的實(shí)現(xiàn)流程
- Java畢業(yè)設(shè)計(jì)實(shí)戰(zhàn)之醫(yī)院心理咨詢問診系統(tǒng)的實(shí)現(xiàn)
相關(guān)文章
如何運(yùn)行SpringBoot項(xiàng)目的方法
這篇文章主要介紹了如何運(yùn)行SpringBoot項(xiàng)目的方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-03-03SpringMVC中@RequestMapping注解用法實(shí)例
通過@RequestMapping注解可以定義不同的處理器映射規(guī)則,下面這篇文章主要給大家介紹了關(guān)于SpringMVC中@RequestMapping注解用法的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-06-06rocketmq消費(fèi)負(fù)載均衡--push消費(fèi)詳解
這篇文章主要介紹了rocketmq消費(fèi)負(fù)載均衡--push消費(fèi)詳解,本文介紹了DefaultMQPushConsumerImpl消費(fèi)者,客戶端負(fù)載均衡相關(guān)知識點(diǎn)。,需要的朋友可以參考下2019-06-06java環(huán)境配好后jar文件打開命令框閃退(無打開方式,無反應(yīng))解決辦法
在Java開發(fā)中我們經(jīng)常會遇到運(yùn)行Jar包時(shí)閃退的問題,下面這篇文章主要給大家介紹了關(guān)于java環(huán)境配好后jar文件打開命令框閃退(無打開方式,無反應(yīng))的解決辦法,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下2024-04-04Java結(jié)合Swing實(shí)現(xiàn)龍年祝福語生成工具
Swing是一個(gè)為Java設(shè)計(jì)的GUI工具包,屬于Java基礎(chǔ)類的一部分,本文將使用Java和Swing實(shí)現(xiàn)龍年祝福語生成工具,感興趣的小伙伴可以了解下2024-01-01