基于可配置api接口的医疗数据服务方法及系统

文档序号:923966 发布日期:2021-03-02 浏览:5次 >En<

阅读说明:本技术 基于可配置api接口的医疗数据服务方法及系统 (Medical data service method and system based on configurable API (application program interface) ) 是由 王兴维 邰从越 杨虎睿 张奇伟 陈攀 张竹渝 于 2020-11-20 设计创作,主要内容包括:本发明公开了一种基于可配置API接口的医疗数据服务方法及系统,属于大数据领域,所述方法包括:构建spring框架,所述spring框架包括管理工具eureka;在配置文件内指定需要连接的所述管理工具eureka实例,所述管理工具eureka实例内的启动函数中允许被发现和允许发现其他实例;获取XML格式的消息体,所述消息体包括至少一个标签;对所述至少一个标签进行解析获取对应的参数;通过所述参数调用后端接口并获得XML结果集。本申请将后端接口的参数类型、数量等由不可变转为可变,且对高耦合的前端与后端进行一定程度的解耦,使开发人员不必在相同的业务逻辑上多次使用重复代码,降低了调试成本。(The invention discloses a medical data service method and system based on a configurable API (application program interface), belonging to the field of big data, wherein the method comprises the following steps: constructing a spring framework, wherein the spring framework comprises an administration tool eureka; specifying within a configuration file the administrative tool eureka instance that needs to be connected, the enabling of discovery and enabling of discovery of other instances in a start-up function within the administrative tool eureka instance; acquiring a message body in an XML format, wherein the message body comprises at least one tag; analyzing the at least one label to obtain corresponding parameters; and calling a back-end interface through the parameters and obtaining an XML result set. The method and the device have the advantages that the parameter type, the number and the like of the rear-end interface are changed from unchangeable to changeable, and the high-coupling front end and the rear end are decoupled to a certain degree, so that developers do not need to use repeated codes on the same business logic for many times, and the debugging cost is reduced.)

基于可配置API接口的医疗数据服务方法及系统

技术领域

本发明涉及大数据领域,具体涉及基于可配置API接口的医疗数据服务方法及系统。

背景技术

医疗数据服务系统是管理医院信息的重要系统,其包括前端、后端、数据库等组件。前端负责展示页面给用户,后端负责业务逻辑的处理及在数据库中查询数据等。

在大多数医院的医疗数据服务系统中,前后端的交互是通过传递参数实现的,前端只需将后端需要的参数传入,并接受后端传回的查询结果集即可。前端在向后端查询时,行业内普遍做法为将后端接口参数固定,即每个后端接口的请求参数为固定参数(固定类型、固定数量)。如果医疗数据服务系统在现有业务上增加其他参数查询,则先预留一个接口,接口参数为开发人员预想的。在业务上线后,根据实体业务,调整参数类型,新增同业务不同参数的接口,同时将每个接口形成文档,供用户参考。某些场景下前端需要向后端查询同个业务多个参数时,前端则需要将多个参数拆分为单个参数,所述单个参数传入对应的后端接口中进行查询,然后将每个单独的查询结果合并,并显示。

上述现有技术方案存在以下缺点:

固定参数的后端接口在业务需要参数变动时,虽然仅仅变动参数类型或参数数量,但后端接口难以实现及时变动,导致开发周期变长,人员工作量增大。

在新开发后端接口时,开发人员因业务不熟练,导致预留的接口不符合业务上的需求,需要在业务上线后跟进增加后端接口,增加了项目成本。同时后端的文档因书写水平问题,难以让用户理解,存在用户使用困难的问题。

在前端需要多次查询时,将多个参数拆分为单个参数会消耗前端一定性能,对前端的响应速度也明显降低。同时多次的查询请求占用过多的带宽,导致网络阻塞,查询效率降低。

发明内容

针对现有技术存在上述问题,本发明提出了一种基于可配置API接口的医疗数据服务方法及系统,将后端接口的参数类型、数量等由不可变转为可变,且对高耦合的前端与后端进行一定程度的解耦,使开发人员不必在相同的业务逻辑上多次使用重复代码,降低了调试成本。

本发明公开了一种基于可配置API接口的医疗数据服务方法,包括:

构建spring框架,所述spring框架包括管理工具eureka;

在配置文件内指定需要连接的所述管理工具eureka实例,所述管理工具eureka实例内的启动函数中允许被发现和允许发现其他实例;

获取XML格式的消息体,所述消息体包括至少一个标签;

对所述至少一个标签进行解析获取对应的参数;

通过所述参数调用后端接口并获得XML结果集。

具体的,获取XML格式的消息体之前还包括:

获取服务编号、服务名称和服务类型;

确定消息格式为XML或者是JSON;

导入或输入消息模板并存入数据库;所述消息模板中参数类型与待调用的后端接口相对应。

具体的,所述服务编号为唯一辨别标识,不能重复。

具体的,对所述至少一个标签进行解析获取对应的参数,包括:

通过jackson库解析所述XML格式的消息体中标签;

从所述标签中获得对应的参数,根据参数类型得到待调用的后端接口;

将多个参数组装为对象,传入对应的后端接口。

具体的,如果对象数量大于最大查询次数N,则将前N个对象传入后端接口;后端对所述对象进行解析,获取对象内的字段,并进行查询生成单个结果集,所有单个结果集合并为XML结果集。

具体的,所述XML格式的消息体,包括前端服务请求和第三方服务请求。

本发明公开了一种基于可配置API接口的医疗数据服务系统,包括:

构建模块,用于构建spring框架,所述spring框架包括管理工具eureka;

指定模块,用于在配置文件内指定需要连接的所述管理工具eureka实例,所述管理工具eureka实例内的启动函数中允许被发现和允许发现其他实例;

消息获取模块,用于获取XML格式的消息体,所述消息体包括至少一个标签;

解析模块,用于对所述至少一个标签进行解析获取对应的参数;

结果获取模块,用于通过所述参数调用后端接口并获得XML结果集。

通过以上技术方案,获得的技术效果在于:本申请在前后端中增加一个数据服务系统,充当中间人的角色,进行参数的解析和对应后端接口的调用,大大减少了后期维护成本和新开发功能成本。同时在不增加服务器的情况下,并发的处理前端数据请求,提高了性能。且前端在进行多参数查询时无需多次请求,一次返回结果集。

附图说明

图1为本申请实施例公开的数据服务计算机的硬件结构框图;

图2为本申请实施例公开的医疗数据服务方法的流程图;

图3为本申请实施例公开的前端或第三方注册过程流程图;

图4为本申请实施例公开的前端或第三方注册界面图;

图5为本申请实施例公开的对标签进行解析流程图;

图6为本申请实施例公开的最大查询次数界面图。

具体实施方式

现在将参考附图更全面地描述示例性实施例。然而,示例性实施例能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施例使得本发明将更加全面和完整,并将示例性实施例的构思全面地传达给本领域的技术人员。

本申请实施例提供基于可配置API接口的医疗数据服务方法及系统,规定了传输查询数据的标准,一个查询请求中XML格式的消息体包括多个参数,从而实现单次查询请求,多个结果集一次返回;可应用于各个领域的数据服务系统中。所述医疗数据服务方法可以在服务器、计算机或者类似的运算装置中执行。以运行在计算机上为例,图1为本申请实施例公开的数据服务计算机的硬件结构框图。如图1所示,计算机10可以包括一个或多个(图1中仅示出一个)处理器102(处理器102可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)和用于存储数据的存储器104,可选地,上述计算机还可以包括用于通信功能的传输设备106以及输入输出设备108。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述计算机的结构造成限定。例如,计算机10还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。

存储器104可用于存储计算机程序,例如,应用软件的软件程序以及模块,如本发明实施例中的医疗数据服务方法对应的计算机程序,处理器102通过运行存储在存储器104内的计算机程序,从而执行各种功能应用以及数据处理,即实现上述的方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。

传输装置106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括计算机10的通信供应商提供的无线网络。在一个实例中,传输装置106包括一个网络适配器(Network Interface Controller,简称为NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置106可以为射频(Radio Frequency,简称为RF)模块,其用于通过无线方式与互联网进行通讯。

图2为本申请实施例公开的医疗数据服务方法的流程图;该方法包括:

S1.构建spring框架,所述spring框架包括管理工具eureka;

为了提升数据服务系统的高并发和高可用,本系统采用springcloud框架,支持多实例部署;管理多实例为spring框架默认自带管理工具:eureka。

S2.在配置文件内指定需要连接的所述管理工具eureka实例,所述管理工具eureka实例内的启动函数中允许被发现和允许发现其他实例;

管理工具eureka可以自动实现负载均衡,即在前端请求数据服务系统时,eureka可以随机的将请求分发到每个实例,实现高可用。

S3.获取XML格式的消息体,所述消息体包括至少一个标签;

在本发明实施例中,消息体是互联网医院在线上产生的业务数据,如诊疗业务,报销业务,包括在多个前端上产生的数据,如患者端的问诊数据、填写的病例数据,医院端的分诊数据,医师端的接诊数据、处方数据等。通过所述业务数据生成XML格式的数据体;每个业务数据对应一个对象,所述对象是由多个标签组成;

在本发明实施例中,标签内容可以包括版本号、患者信息、医疗信息,其中,所述版本号用于标记所述标签的版本更替,以适应随时间发展标签内容的变化情况,所述患者信息包括:用户账号、时间、医院ID、性别和年龄等,所述医疗信息包括:疾病种类、检查项目和病例信息等。

S4.对所述至少一个标签进行解析获取对应的参数;

在本发明实施例中,前端或第三方输入的消息体中标签为患者年纪、性别、疾病种类和检查项目等关键字,将所述消息体中标签进行解析获取对应的参数,所述对应的参数可以为“30岁-40岁男性高发致死疾病”。

S5.通过所述参数调用后端接口并获得XML结果集。

在本发明实施例中,通过XML格式的数据体中参数个数,确定需要查询的次数,使用循环机制分别多次调用后端接口,所述后端接口接收参数后,通过jackson进行解析,得到含有参数的列表。对列表中的参数进行遍历,对每个参数生成单个结果集,将单个结果集传入jackson库,合并成为一个XML结果集,将所述XML结果集返回给前端,所述前端基于XML结果集进行渲染,展示。

在高并发方面,数据服务系统引入redis。redis会将数据库中常用的数据进行缓存,从而提高系统响应速度。本系统同时也对缓存穿透和缓存雪崩做出限制,在redis出现缓存雪崩和穿透时,则对前端调用频率做出限制。同时采取相应措施:启动数据库直连接;限制前端连接频率为较低水平;通知运维人员检查redis。

以上过程为前端或第三方标准查询过程。其中,数据服务扮演了中间人的角色,即数据服务过程不直接查询数据,而是在中间做一个代理。通过XML的方式将固定的参数类型变为键值对,把参数类型动态化。同时,利用XML标签和标签的可重复性,将多个参数封装在一个XML文件中,使前端或第三方在进行多参数查询时无需多次请求,一次请求多个参数,一次返回结果集。

可选的,图3为本申请实施例公开的前端或第三方注册过程流程图;获取XML格式的消息体之前还包括:

S01.获取服务编号、服务名称和服务类型;

在本发明实施例中,图4为本申请实施例公开的前端或第三方注册界面图;联系数据服务系统管理员进入数据服务系统后台,在后台中新增前端或第三方信息;所述前端或第三方信息包括服务编号、服务名称和服务类型。

在本发明实施例中,所述服务编号为前端或第三方唯一辨别标识,由于前端或第三方可能存在多个,故服务编号不能重复;所述服务名称可以根据需要自行定义,如用户a_电子病历系统、用户b_疾病统计数据系统;所述服务类型为DataService类型;

S02.确定消息格式为XML或者是JSON;

在本发明实施例中,所述消息格式是通过用户在前端界面进行自主选择而获得的。XML为可扩展标记语言,标准通用标记语言的子集,是一种用于标记电子文件使其具有结构性的标记语言。

S03.导入或输入消息模板并存入数据库;所述消息模板中参数类型与待调用的后端接口相对应。

在本发明实施例中,所述消息模板将前端界面的信息以键值对的方式存储,所述前端界面上的每个项目在消息模板中有固定的标签与之对应;该消息模板可以以文件形式导入,也可以在界面上直接录入,然后将导入或者录入的消息模板存入数据库,以便后期使用时调用模板。

本申请数据服务过程不能直接识别前端和后端程序,需要在数据服务系统内进行注册并配置才能使用,也方便了统一管理各个前端及第三方。

可选的,图5为本申请实施例公开的对标签进行解析流程图;对所述至少一个标签进行解析获取对应的参数,包括:

S21.通过jackson库解析所述XML格式的消息体中标签;

在本发明实施例中,IDEA中引用jackson库,IDEA是一种商业化销售的Java集成开发环境(Integrated Development Environment,IDE)工具软件,由JetBrains软件公司(前称为IntelliJ)开发,提供Apache 2.0开放式授权的社区版本以及专有软件的商业版本,开发者可选择其所需来下载使用。

S22.从所述标签中获得对应的参数,根据参数类型得到待调用的后端接口;

在本发明实施例中,所述参数被包含在body内,将HTTP请求的body中的XML或json(json,JavaScript Object Notation,JS对象简谱)串序列化为map结构,遍历所述map结构,获取标签对应的字段值。

S23.将多个参数组装为对象,传入对应的后端接口。

在本发明实施例中,通过程序查询数据库时,并不是直接将程序中需要查询的参数指定,而是将很多数据抽象化为一个对象。如:数据库中有性别、年龄、身高、体重等字段,则将这些字段抽象为人这个对象,将依据此对象查询数据。

可选的。如果对象数量大于最大查询次数N,则将前N个对象传入后端接口;后端对所述对象进行解析,获取对象内的字段,并进行查询生成单个结果集,所有单个结果集合并为XML结果集。

在本发明实施例中,多次查询是很重要的部分。一个请求多次查询,不仅仅可以控制查询的次数,同样可以有效减少网络的使用压力,增加使用效率,规范化查询。同时,限制查询次数还可以防止DOS攻击。DoS是Denial of Service的简称,即拒绝服务,造成DoS的攻击行为被称为DoS攻击,其目的是使计算机或网络无法提供正常的服务。最常见的DoS攻击有计算机网络宽带攻击和连通性攻击。例如:在查询患者信息时,可以限制一次查询最多查询50个患者信息,可根据需要定制。当查询用户权限时,限制一次只能查询一个用户权限(当前用户)。

在本发明实施例中,图6为本申请实施例公开的最大查询次数界面图;在前端或第三方页面设置最大连接次数,此设置在前端或第三方请求前已设定好,并存入数据库。前端或第三方在发送数据服务请求时,数据服务系统会在数据库中找到最大查询次数N。如果对象数量大于最大查询次数N,则将前N个对象传入后端接口;如果对象数量小于最大查询次数N,则按照上述方法正常查询。

在本发明实施例中,多参数多次查询也可以使用多台分布式服务器实现。使用nginx部署多台服务器并对外统一网关,在前端请求数据的同时,将多次请求分发到每台服务器,每台服务器仅执行一次查询,同样可以实现多次查询。同时,此方案需要使用1+1+N+1的部署策略及1个前端,一个数据服务系统,N台后台逻辑处理服务器,1个数据库。此方案适合于高并发的查询环境,nginx中每个后端程序都可进行多次查询,可均衡负载。

可选的,所述XML格式的消息体,包括前端服务请求和第三方服务请求。

在本发明实施例中,数据服务系统的传输协议基于webservice框架,因此所有使用webservice协议的第三方框架,在得到管理员授权后,都可以与数据服务系统传输数据。

本实施例还公开了一种基于可配置API接口的医疗数据服务系统,包括:

构建模块,用于构建spring框架,所述spring框架包括管理工具eureka;

指定模块,用于在配置文件内指定需要连接的所述管理工具eureka实例,所述管理工具eureka实例内的启动函数中允许被发现和允许发现其他实例;

消息获取模块,用于获取XML格式的消息体,所述消息体包括至少一个标签;

解析模块,用于对所述至少一个标签进行解析获取对应的参数;

结果获取模块,用于通过所述参数调用后端接口并获得XML结果集。

进一步地,还包括:

输入模块,用于获取服务编号、服务名称和服务类型;

格式确定模块,用于确定消息格式为XML或者是JSON;

模板获取模块,用于导入或输入消息模板并存入数据库;所述消息模板中参数类型与待调用的后端接口相对应。

进一步地,所述输入模块中服务编号为唯一辨别标识,不能重复。

进一步地,所述解析模块,包括:

标签解析模块,用于通过jackson库解析所述XML格式的消息体中标签;

参数获取模块,用于从所述标签中获得对应的参数,根据参数类型得到待调用的后端接口;

组装模块,用于将多个参数组装为对象,传入对应的后端接口。

进一步地,组装模块中如果对象数量大于最大查询次数N,则将前N个对象传入后端接口;后端对所述对象进行解析,获取对象内的字段,并进行查询生成单个结果集,所有单个结果集合并为XML结果集。

进一步地,所述XML格式的消息体,包括前端服务请求和第三方服务请求。

由于该医疗数据服务系统解决问题的原理与上述医疗数据服务方法类似,因此所述医疗数据服务系统的实施可以参见方法的实施,在此不再赘述。

本发明实施例还提供一种服务器,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述医疗数据服务方法的步骤。

本发明实施例还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器运行时执行上述医疗数据服务方法的步骤。

流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。

在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,就本说明书而言,“计算机可读介质”可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。

应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。

此外,在本发明各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一起。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读存储介质中。

最后应说明的是:以上上述实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应上述以权利要求的保护范围为准。

13页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种异构数据库的数据集成方法、装置及存储介质

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!