基于SOA的医生综合素质评价系统的设计与实现
2018-06-06张锦曹友
张锦 曹友
摘 要:针对目前择医难、医患关系紧张和患者就医后无法对医生的行医过程进行评价等问题,设计与开发基于SOA的医生综合素质评价系统,系统采用B/S结构与WebService服务,使用XML文件进行数据交换。文中对系统采用的分层体系结构和关键技术进行研究与分析,列出系统实现的主要功能,并对系统分层结构的实现过程进行说明。通过该系统,患者和医生同行使用浏览器在网上随时随地对医生进行评价和查看对医生的评价信息,一方面方便患者择医与对医生进行评价,另一方面有利于医院的管理和医生自我提高。
关键词:SOA;医生综合素质;评价;WebService;XML
中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2018)07-0099-03
Abstract: In view of the problems such as the difficulty in choosing a doctor, the tension between doctors and patients, and the inability to evaluate doctors' medical procedures after medical treatment, a comprehensive evaluation system for doctors based on SOA is designed and developed. The system adopts B/S structure and WebService, and uses XML files for data exchange. This paper studies and analyzes the layered architecture and key technologies adopted by the system, lists the main system functions, and explains the realization process of the system hierarchical structure. Patients and doctors colleagues can use the system to evaluate doctors and check the evaluation information to doctors on line at anytime and anywhere. On the one hand, it is convenient for patients to choose a doctor and to evaluate doctors; on the other hand, it is conducive to hospital management and doctors self-improvement.
Key words: SOA;doctors comprehensive quality; evaluation; webService;XML
概述
醫生是一个医院的主要组成部分,医生的素质水平与医院的发展前景和医院的医疗服务水平有着密不可分的关系。近十多年以来,医疗纠纷越来越多,医患关系日益紧张,各地大小医院不断上演伤害医务人员的暴力事件,随着人们对医疗服务质量要求越来越高,患者根据自身条件和对医生评价的信息来选择医生也显得越来越重要,医疗行业作为一种服务与诊疗结合的特殊服务行业,医疗机构必须对医生的综合素质进行认定,一方面为患者择医就医提供参考数据,另一方使医生可以通过患者对自己的行医评价和同行的评价,发现自身在提供医疗服务的过程存在的不足,调动医生在工作中“以病人为中心”的积极性,激励医生在医疗服务中不断改进,有利于构建和谐的医患关系,同时医院管理者通过医生综合评价结果对医生进行奖励或批评,有利于医院的管理和医院医德医风的建设,保持医院的核心竞争力和长远发展。
该系统使用面向服务的SOA体系结构,实现从患者、同行和基本信息三个方面对医生综合素质进行评价的系统,用户通过网络使用浏览器访问医生综合素质评价系统的Web服务器,再通过Web服务器来访问数据库服务器,从而实现对医生综合素质的评价。
1 SOA架构与Web Service技术
SOA(Service-Oriented Architecture)是一种面向服务的软件体系架构,是目前常用的基于WebService服务的核心架构。SOA架构是一种具有松耦合、高重用特性的系统架构,应用服务可以相互调用,资源被作为可通过标准方式访问的独立服务提供给网络中的其他成员[1],SOA 架构基于服务请求、服务提供和服务注册中心三者来交互实现[2],其接口与其他功能和结构非紧密相连,其服务与使用服务的硬件平台、使用服务的操作系统和开发的程序设计语言相互独立,不仅可以降低系统各部分之间的耦合性,增强服务设计的复用性,还能随时根据客户端需求灵活地执行相关任务[3],提高了服务组件的重用性,从而使得系统具有比较好的兼容性和可扩展性。
Web Server 以TCP/IP 协议作为底层通讯协议,实现客户与服务器之间的HTTP 请求与响应,并分配IP 地址,因此Web Server 的工作可视为两个部分:Web 浏览器和Web 服务器,主要是后者在工作[4]。 WebService技术能与其他兼容的组件进行相互操作,并且能够在Web中进行定义和调用,WebService是一种跨编程语言和跨操作系统平台的远程调用技术,使用WebService技术,使得运行在不同机器上的不同应用无须借助附加的、专门的第三方软件或硬件,就可相互交换数据[5],因而WebService技术是实现SOA软件架构的最佳技术,所以系统使用Web Service技术来实现SOA架构。
系统的是一个B/S结构,采用微软公司具有较好的可视化管理操作的Microsoft SQL Server 2008作为数据库管理工具,在Visual studio 2013集成开发平台上,使用.net框架和C Sharp语言进行开发,客户端与服务端的数据交换采用XML文档实现,系统体系结构采用目前比较流行的分层体系结构,以数据为核心,数据在各层之间流动,系统从里到外分为如下几层:数据层、数据访问层、服务层、业务层、应用层和用户访问层,系统分层体系结构如图1所示。
2 系统功能模块
通过对系统进行需求分析,将该系统分为基本信息管理、评价信息收集、评价和评价结果查询四个子模块,并对每个模块实现的功能进行划分,系统功能结构如图2所示。
1)基本信息管理模块:实现对系统基本信息维护和管理操作,主要包括用户登录管理、医生信息管理、患者信息管理、管理员信息管理、评价结果信息管理、评价指标权重管理。
2)评价信息收集模块:患者、医生和管理人员进入到不同的评价界面,填写并提交评价信息,其中包括固定指标评价和文字内容评价。
3)评价模块:对收集来的各类评价人员的评价信息,先将定性评价转换为定量评价,再使用模糊数学综合评价法进行评价,以分数的形式展示评价结果,并对评价结果进行统计,包括统计患者评价的汇总结果、医生同行的汇总评价结果和患者、医生同行和医生自身基本信息综合评价的结果。
4)评价结果查询模块:查看各类评价结果,包括患者、医生同行、基本信息评价结果和三个方面综合评价结果,以及文字内容评价信息。
3系统实现与关键技术
以患者评价信息的提交为例来展示系统SOA架构的实现过程,患者评价界面为应用层,如图3所示。
这里主要介绍通过提交按钮将文字内容评价存入数据库,通过提交按钮的click事件来实现业务层功能,其中使用SoapWebServices类的SoapWebService( )方法来发送服务请求,提交按钮的click事件的主要代码如下:
protected void Button1_Click(object sender, EventArgs e)
{
……
Hashtable hash = new Hashtable();//创建哈希表
hash["Type"] = "2";
hash["Eval_id"] = Session["name"].ToString();
hash["Eval_info"] = tb1.Text.Trim();
hash["Doc_id"] = Common.doc_id;
XmlDocument xxx = SoapWebServices.SoapWebService("http://127.0.0.1:8080/DcqeWebService.asmx", "saveEval","evalinfo",hash); //調用服务,保存语文字评价信息
……
}
在服务器与客服端之间使用XML格式文档来描述和传输数据,Web服务是以XML为基础,开放性的Web技术是SOA实现的主要方法[6]。XML是一种轻量级的数据储存文件,支持多种编码,且具有较好的扩展性。需要在客户端和服务器端传输数据时,先将数据写入到XML文件中,在写入数据时采用不同的编码,目前常用的编码主要有UTF-8和GB2312两种,然后通过网络进行传输,在接收端使用XML解析器对XML文件进行解析,获取所需要的数据,并进行处理。
在业务层发送服务调用请求后,从服务器上调用已经注册的服务,注册保存文字内容评价服务的主要代码如下:
public bool saveEval(EvalInfoTextModel evalinfo) {
IEvalInfoText ieval = new EvalInfoTextImpl();
return ieval.saveEval(evalinfo);
在服务层编写SQL语句,调用数据访问层的SqlHelper类 ExecuteSql()实现将评价数据存入数据库,其主要代码如下:
public bool saveEval(EvalInfoTextModel eit)
{
string sql="insert into eval_info_text(type,eval_id,eval_info,doc_id) values(@type,@eval_id,@eval_info,@doc_id)";
SqlParameter[] paras = new SqlParameter[]{
new SqlParameter("@type",eit.Type),
……
};
if (SqlHelper.ExecuteSql(SqlHelper.LocalSqlServer, sql, paras) >= 0)
{……}
}
在数据访问层,通过ADO.NET数据数据访技术实现数据访问,实现ExecuteSql()方法的主要代码如下:
public static int ExecuteSql(string connectionString, string SQLString, params SqlParameter[] cmdParms)
{
SqlConnection connection = new SqlConnection(connectionString)
SqlCommand cmd = new SqlCommand()
PrepareCommand(cmd, connection, null, SQLString, cmdParms);
int rows = cmd.ExecuteNonQuery();
……
}
4 結束语
使用SOA软件架构的思想设计并实现了医生综合素质评价系统,通过使用该系统,患者在就医前,能够查看医生的基本信息和行医信息评价,选择自己满意的医生,就医后能对医生行医过程进行评价,有利于解决患者就医前择医难的困境和缓和医患关系,能够真实的反应医生的医德医风,同时通过对评价数据的统计分析,为医生的评优与职称评定提供的客观、公正的依据,为医院的发展提供保障,同时也能督促医生提升自己。
参考文献:
[1] 李建华,陈松乔,马华.面向服务架构参考模型及应用研究[J].计算机工程,2006 , 32(20): 100-102.
[2] 王少林,王越,申斌.基于SOA的建筑设备万联网体系架构研究[J].计算机基技术与发展,2014,24(1):196-199.
[3] 施继延,杨宗亮,刘炎,等.基于SOA的电网物流服务大厅应用系统的设计与实现[J].电子设计工程,2017,25(2):71-75.
[4] 翟娟,谭公礼,曹国华.基于Web Server的消防水泵远程监控系统[J].软件,2017,38(8):59-62.
[5] 紫金桥最新版实时数据库(RealDB6.0)新增Web—Servers使用帮助[J].自动化信息,2014(3):15.
[6] Si N, Yu P, Zhang L. Semantic SOA based integrated development environment for complex information systems[C]// Asia Simulation Conference -, International Conference on System Simulation and Scientific Computing. IEEE, 2008:1521-1526.