一、前言
网络技术和计算机技术发展至今,已经拥有了深厚的理论基础,并在现实中进行了充分运用,尤其是基于计算机运行的软件更是受到各界的关注。加上现在人们已经步入信息时代,所以对于信息的宣传和管理就很关键。因此医疗服务信息的管理计算机化,系统化是必要的。设计开发在线医疗服务系统不仅会节约人力和管理成本,还会安全保存庞大的数据量,对于医疗服务信息的维护和检索也不需要花费很多时间,非常的便利。
在线医疗服务系统是在MySQL中建立数据表保存信息,运用SSM框架和Java语言编写。并按照软件设计开发流程进行设计实现。系统具备友好性且功能完善。管理员管理医生,药品,预约挂号,购买订单以及用户病例等信息。医生管理坐诊信息,审核预约挂号,管理用户病例。用户查看医生坐诊,对医生预约挂号,在线购买药品。
在线医疗服务系统在让医疗服务信息规范化的同时,也能及时通过数据输入的有效性规则检测出错误数据,让数据的录入达到准确性的目的,进而提升在线医疗服务系统提供的数据的可靠性,让系统数据的错误率降至最低。
网络技术和计算机技术发展至今,已经拥有了深厚的理论基础,并在现实中进行了充分运用,尤其是基于计算机运行的软件更是受到各界的关注。计算机软件可以针对不同行业的营业特点以及管理需求,设置不同的功能,可以符合各个行业的实际运营要求,其快速便捷的信息处理模式已经可以让信息的管理者从繁琐的工作中得到解脱,还可以实现数据的易维护和安全性。加上现在人们已经步入信息时代,所以对于信息的宣传和管理就很关键。因此信息化管理模式也是当今的管理趋势。对于医疗服务信息,如果仍使用旧办法进行,将会影响其在行业中的竞争力,也很容易被时代淘汰,所以医疗服务信息的管理计算机化,系统化是必要的。设计开发在线医疗服务系统不仅会节约人力和管理成本,还会安全保存庞大的数据量,对于医疗服务信息的维护和检索也不需要花费很多时间,非常的便利。
在线医疗服务系统在实际运用中,对管理员的综合素质的提升也有帮助。因为在线医疗服务系统在减轻了医疗服务信息管理人员的工作量的同时,还可以让他们把节省出来的时间用来充实自己,提升个人能力,这样才可以充分发挥在线医疗服务系统提供的服务,让在线医疗服务系统显示数据信息的同时,也可以快速完成数据处理,提升服务水平。而且在线医疗服务系统开发需要投入的成本较低,但是后期运用中,会产生大量效益,尤其是在线医疗服务系统在进行高负荷运转时,还可以保证数据处理的质量与数据安全,通过对处理工作的流程的优化,可以节省传统模式需要投入的人力和资金,从而降低信息管理的成本。另外,在线医疗服务系统在让医疗服务信息规范化的同时,也能及时通过数据输入的有效性规则检测出错误数据,让数据的录入达到准确性的目的,进而提升在线医疗服务系统提供的数据的可靠性,让系统数据的错误率降至最低。
二、技术简介
2.1 Java语言
Java语言自公元1995年至今,已经超过25年了,依然在软件开发上面有很大的市场占有率。当年Sun公司发明Java就是为了发展一门跨平台的高级编程语言,让程序开发人员专注于程序开发过程,不需要关注服务器是属于哪个平台,因为跨平台的特性让语言发展的很迅速。Java的发展,吸收了C++这些语言的优点,因为新生事物一般就是解决老旧事物一些痛点的,虽然Java也有很多缺点,但是起码也算是一种发展方向。学习Java不需要太多的指针这些理念,也不用学习太过复杂的数据结构理论,比如什么堆栈这些概念,除非某些特殊行业对这些要求相当严谨之外,一般用Java开发程序是不用考虑各种各样的数据结构的。因为Java属于一种强类型语言,已经对各种数据定义了各种相应的类型。Java对数据类型定义分为两大种,一种是基本类型,含有8个基本属性,另一个是包装类。基本类和包装类从根本的定义上,都有很明显的区分,计算机运行也会有很明显的差别,如果用错了会编译错误还会影响运行效果的,Java的各种优点只需要按部就班的学习使用即可。
2.2 SSM框架
本课题开发的应用程序主要采用的框架技术是SSM,是Java语言的一种框架集合的简称,目前在Java语言方面,主要有两大分支,一个是主攻Java语言,学习了Java基础之后,会有很多Java进阶框架进行学习,主要是针对应用程序后台进行开发设计,另一方面是转行去学习安卓语言,主要是做安卓的前端设计方面,虽然也是Java语言,但是主要去学习安卓平台的各种架构和框架了。但是不管前端应用如何,SSM框架主要是针对服务端方面进行开发的一个主流框架集合。针对于传统的SSH框架的臃肿,配置繁琐,不管是开发还是二次开发都会造成时间上大量的浪费,并且学习上面也不能有效衔接,需要去适应框架的各种设计,而框架设计比较死板,容易出错。SSM框架是当前最流行的,告别了繁琐的配置,让配置更加灵活,让数据操作更加方便,选择SSM框架进行开发感觉是很合适的。
2.3 MYSQL数据库
关系型数据库设计,对于数据库字段类型的设计以及字段长度的设计,都无时无刻的影响着后续程序开发后大量数据操作的运行效率。关系型数据库对不同的字段类型都有解释,本着课题所需的应用程序开发,寻找最适合的关系型数据库,基本上都有考虑。关系型数据库发展至今也有几十年了,优胜劣汰导致到现在还依然存在的关系型数据库其实并不多,基本上也都能满足应用程序的功能所需,所以要从其他方面来进行考虑数据库的选择。从安装维护上面考虑,SQL Server数据库有好几个G的安装包,并且安装过程中会安装很多不需要的功能,非常占用资源。Oracle数据库不比SQL Server安装包小,并且安装也会出现很多问题,对于课题所需来讲,没必要这么麻烦,并且安装还需要各种激活,只有MySQL数据库完全适合,几十兆大小的安装包,运行起来压力不大,毕竟开发电脑上还有很多其他有用的东西,而且完全免费,所以选择了MySQL数据库作为首选数据库。
三、系统功能效果
四、核心代码
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>入口页</title>
<link href="${pageContext.request.contextPath}/resources/xznstatic/css/jquery.dataTables.min.css" rel="stylesheet" type="text/css" />
<link href="${pageContext.request.contextPath}/resources/xznstatic/css/jquery.toast.min.css" rel="stylesheet" type="text/css">
<link href="${pageContext.request.contextPath}/resources/xznstatic/css/style.css" rel="stylesheet" type="text/css">
</head>
<style>
</style>
<body>
<div class="preloader-it">
<div class="la-anim-1"></div>
</div>
<div class="wrapper theme-1-active pimary-color-blue">
<nav class="navbar navbar-inverse navbar-fixed-top">
<div class="mobile-only-brand pull-left">
<div class="nav-header pull-left">
<div class="logo-wrap">
<a href="#"><span class="brand-text" id="pName"></span></a>
</div>
</div><a id="toggle_nav_btn" class="toggle-left-nav-btn inline-block ml-20 pull-left"
href="javascript:void(0);"><i class="zmdi zmdi-menu"></i></a><a id="toggle_mobile_search"
data-toggle="collapse" data-target="#search_form" class="mobile-only-view"
href="javascript:void(0);"><i class="zmdi zmdi-search"></i></a><a id="toggle_mobile_nav"
class="mobile-only-view" href="javascript:void(0);"><i class="zmdi zmdi-more"></i></a>
</div>
<div id="mobile_only_nav" class="mobile-only-nav pull-right">
<ul class="nav navbar-right top-nav pull-right">
<li class="dropdown auth-drp"><a href="#" class="dropdown-toggle pr-0" data-toggle="dropdown"><img
src="${pageContext.request.contextPath}/resources/xznstatic/img/user1.png" alt="user_auth" class="user-auth-img img-circle" /><span
class="user-online-status"></span></a>
<ul class="dropdown-menu user-auth-dropdown" data-dropdown-in="flipInX"
data-dropdown-out="flipOutX">
<li class="sub-menu show-on-hover">
<a href="#" onclick="toFront()" class="dropdown-toggle pr-0 level-2-drp">
<i class="zmdi zmdi-check text-success"></i>跳到前台
</a>
</li>
<li class="divider"></li>
<li><a href="#" onclick="logout()"><i class="zmdi zmdi-power"></i><span>退出</span></a></li>
</ul>
</li>
</ul>
</div>
</nav>
<div class="fixed-sidebar-left">
<ul class="nav navbar-nav side-nav nicescroll-bar" id="side-menu">
<li>
<a href="${pageContext.request.contextPath}/jsp/modules/home/home.jsp" onclick="navClick(this);return false;">
<div class="pull-left">
<i class="zmdi zmdi-flag mr-20"></i>
<span class="right-nav-text">主页</span>
</div>
<div class="clearfix"></div>
</a>
</li>
</ul>
</div>
<div class="page-wrapper">
<div class="container-fluid pt-30">
<iframe id="mainIframe" src="${pageContext.request.contextPath}/jsp/modules/home/home.jsp" width="100%" frameborder="0" scrolling="auto" ></iframe>
</div>
<footer class="footer container-fluid pl-30 pr-30">
<div class="row">
<div class="col-sm-12">
<p id="copyright" style="text-align: center;"></p>
</div>
</div>
</footer>
</div>
</div>
<script src="${pageContext.request.contextPath}/resources/xznstatic/js/jquery.min.js"></script>
<script src="${pageContext.request.contextPath}/resources/xznstatic/js/bootstrap.min.js"></script>
<script src="${pageContext.request.contextPath}/resources/xznstatic/js/jquery.dataTables.min.js"></script>
<script src="${pageContext.request.contextPath}/resources/xznstatic/js/jquery.slimscroll.js"></script>
<script src="${pageContext.request.contextPath}/resources/xznstatic/js/jquery.waypoints.min.js"></script>
<script src="${pageContext.request.contextPath}/resources/xznstatic/js/jquery.counterup.min.js"></script>
<script src="${pageContext.request.contextPath}/resources/xznstatic/js/dropdown-bootstrap-extended.js"></script>
<script src="${pageContext.request.contextPath}/resources/xznstatic/js/jquery.sparkline.min.js"></script>
<script src="${pageContext.request.contextPath}/resources/xznstatic/js/owl.carousel.min.js"></script>
<script src="${pageContext.request.contextPath}/resources/xznstatic/js/switchery.min.js"></script>
<script src="${pageContext.request.contextPath}/resources/xznstatic/js/echarts-en.min.js"></script>
<script src="${pageContext.request.contextPath}/resources/xznstatic/js/echarts-liquidfill.min.js"></script>
<script src="${pageContext.request.contextPath}/resources/xznstatic/js/jquery.toast.min.js"></script>
<script src="${pageContext.request.contextPath}/resources/xznstatic/js/init.js"></script>
<script src="${pageContext.request.contextPath}/resources/xznstatic/js/dashboard-data.js"></script>
<script>
<%@ include file = "jsp/utils/menu.jsp" %>
<%@ include file = "jsp/static/setMenu.js" %>
<%@ include file = "jsp/utils/baseUrl.jsp" %>
// 用户登出
<%@ include file = "jsp/static/logout.jsp" %>
$(document).ready(function () {
//我的后台,session信息转移
if (window.localStorage.getItem("Token") != null && window.localStorage.getItem("Token") != 'null') {
if (window.sessionStorage.getItem("token") == null || window.sessionStorage.getItem("token") ==
'null') {
window.sessionStorage.setItem("token", window.localStorage.getItem("Token"));
window.sessionStorage.setItem("role", window.localStorage.getItem("role"));
window.sessionStorage.setItem("accountTableName", window.localStorage.getItem("sessionTable"));
window.sessionStorage.setItem("username", window.localStorage.getItem("adminName"));
}
}
$('.dropdown-toggle .hidden-xs').html(window.sessionStorage.getItem('username'));
$('#pName').text(projectName);
$('#copyright').text('欢迎使用' + projectName)
var token = window.sessionStorage.getItem("token");
if (token == "null" || token == null) {
alert("请登录后再操作");
window.location.href = ("jsp/login.jsp");
}
setMenu();
});
</script>
</body>
</html>