查看原文
其他

如何开发高性能医疗信息系统(系统架构篇)

吴坤 HIT专家网官微 2022-11-03
编者按

医疗信息化建设最主要的任务是规划、设计、开发以及部署医疗信息系统。如何开发设计性能良好的医疗信息系统,对于提高医院临床科室的工作效率和医疗信息化工作水平而言至关重要。

在本系列文章中,笔者将围绕“如何开发性能良好的医疗系统软件”这一主题,并结合自身工作经历,分别从软件系统架构设计、程序开发设计、数据库设计开发、项目管理、典型案例等几个方面分享和总结相关经验和教训。 

目前市面上的医疗软件,CS和BS架构都占了相当部分。其中,CS架构主要是老牌医疗软件,而一些新面市的医疗软件主要以BS架构为主。笔者认为,从技术和医疗业务的特点来看,BS架构无疑具备优势,目前大量医疗软件都在从CS架构到BS架构更新换代。为此,本文讨论的内容主要以BS架构软件为主。

四类软件系统架构比较


▲ 图一

在图一描述的系统架构中,应用程序服务器、文件服务器和数据库服务器都集中部署在一台服务器上。这一架构显然存在很多缺陷,整个系统所有应用都集中部署在一台服务器,拓展性差、极易引发单点故障,导致难以支撑高并发服务。这样的系统架构主要存在于业务简单、用户较少的小型企业或者企业内部门。因为这些机构的信息化资金投入有限,也没有较高的业务要求。

▲ 图二

图二所描述的系统实现了分层架构。应用程序服务器、文件服务器、数据库服务器分别部属在不同服务器上,系统的拓展性和可管理性增强很多。当系统中存储文件和数据量增大时,只需拓展相应文件服务器和数据库服务器配置即可,应用服务器不需做相应变动。同样,如果系统应用性能需要提升时,可相应地对应用服务器进行拓展。不同服务器处理不同的服务,使得系统整体性能得到提高。但是,这一系统架构依然存在缺陷,一旦应用服务器、文件服务器或者数据库服务器三者任一服务器出现故障,系统即无法正常运行。


▲ 图三

图三所描述的系统结构克服了图一和图二中系统结构缺陷,通过引入分布式缓存、CDN等技术,使得系统在性能、拓展性和可用性方面得到大幅提升。首先,数据库服务器和文件服务器组建为分布式服务器集群,不会出现单点故障。同时引入了分布式缓存,使大部分数据访问可在缓存服务器中读取,这极大减轻了数据库服务器的压力,使得系统具备高并发应对能力。另外,针对用户的区域分布特点,不同地理区域的用户访问量差异很大,通过CDN和反向代理技术可进一步提高用户请求的访问速度。而对于数据存储和访问,通过引入NoSql数据库服务器和搜索引擎服务器,进一步提高了数据访问速度。因此,图三所描述的系统架构,能很好地应对大规模高并发用户请求,特别适用于互联网公司业务。


▲ 图四

图四中所描述的系统架构与图三相比,更为复杂,适用于超大型应用系统。对于这些应用系统而言,业务拆分越来越细,系统复杂度指数级增长,部署和维护也越来越困难。对于此类系统,将具有相同范畴的业务独立划分成独立的业务应用服务,每个应用维护各自应用服务器集群。分布式应用作为管理平台,调用各个业务应用来完成具体任务。分布式应用同样部署在分布式应用服务器集群,这样的架构能很好地应对超大规模的业务应用需求,比如淘宝、京东商城之类的大型互联网企业业务系统。

医疗信息系统架构设计需要结合实际

上文中,图一到图四分别描述了几种典型的企业信息系统架构,从单机版简单服务器架构到适用于大规模互联网应用的分布式应用服务器集群架构。那么,对于医疗机构而言,到底应该如何选择和设计应用架构,以更好地提高医疗应用系统性能,给临床医护人员带来更好的用户体验呢?

针对这一问题,首先需要分析一下医疗机构信息系统的应用背景。对于医疗机构日常业务而言,用户并发量不大,即使是超大型三甲医院,同时在线用户人数一般也不会超过五位数,这远低于大型互联网公司应用。而在数据信息访问上,例如患者病历信息、检查检验信息等,包括图片等非结构化信息和文字内容等结构化信息,响应时间长短对于繁忙的医护人员的使用体验而言至关重要。因此,医疗机构信息系统应该以安全性和降低响应时间为主,可不用过多考虑高并发的需求。

同时,就目前国内大部分医疗机构信息部门而言,人员和技术储备上远不及其他行业信息部门,一些先进技术的应用可能一时也难以很好落地和运行。从这一方面看,医疗机构在进行信息系统设计时,不宜太过复杂或太过追求先进技术。

综合考虑以上因素,笔者认为,可以设计一个这样的系统结构,如图五所示:

▲ 图五

在系统架构设计时,没有采用CDN、反向代理等先进技术。同时,考虑多院区大型集团化医院的应用场景,设置了分布式缓存,以提高性能、降低数据库访问压力。而对于医疗业务高峰期的大量数据库读写任务,将数据库服务器设置成读写分离,主数据库服务器提供“写”任务,从数据库服务器提供“读”服务。在应用服务器集群端,通过合理的负载均衡策略来提高系统整体应用请求响应速度。

医疗机构信息系统架构设计工作是整个医疗信息系统建设中非常重要的一环。合理的系统架构不仅可以保障高业务响应性能和良好的用户体检,而且对于提高临床医疗业务工作效率和医疗信息化建设水平都能起到很好的推动作用。而与其他行业相比,医疗信息化有其特殊性,所以在系统架构选型时,需要根据自身因素合理地设计,不能一味追求高端技术,也不能太过简单落后。

在本文中,笔者结合了自身工作经验以及医疗行业的特殊背景,横向对比了其他行业信息系统架构。通过一个具体案例,就“如何设计性能良好的医疗系统架构”这一话题提出了一些实用建议,期待能与各位医院信息科工程师同道交流分享更多心得。

【作者简介】

吴坤,计算机专业硕士,华中科技大学同济医学院附属同济医院信息中心软件工程师。专业计算机程序员,医疗信息技术推广者,积极参与社会活动,热衷于以信息技术提高医疗行业服务质量和改善患者就医体验。

下期预告《如何开发高性能医疗信息系统(程序设计篇)》 


近期热门文章


HIT专家网∣致力推进中国卫生信息化

想加入HIT专家网专业交流群吗?

请扫码添加“HIT专家网”小助手微信好友后提交你的申请哦!(请注明姓名、单位名称、职务、主管技术或产品领域,以便有针对性加群)

微信订阅号:HIT180com

微信服务号:chinaHIT

投稿:tan_xiao@hit180.com

商务合作:(010)82373062

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存