一种医院信息系统的制作方法

文档序号:37303170发布日期:2024-03-13 20:51阅读:15来源:国知局
一种医院信息系统的制作方法

本技术涉及信息系统,更具体地说,是涉及一种医院信息系统。


背景技术:

1、随着数字化、信息化技术的发展,几乎所有的医疗模块都实现了信息化,但传统的his(hospital information system)系统基本是按功能划分。具体地,his包括门诊系统、住院系统、电子病历系统等子系统,门诊系统又包括门诊预约、门诊挂号、门诊医生站、门诊收费、门诊药房系统、门诊输液等子系统;住院系统又包括住院收费、住院医生站、住院护士站、住院药房、住院手术室等子系统;电子病历系统包括医生病历、护理病历、病历质控、临床路径等子系统。现有技术中,每个子系统都是一个单独的exe(可执行)文件,主要存在以下问题:

2、安装和配置困难:每个子系统都需要独立安装和配置,这会增加系统的复杂性和维护成本,在系统升级时,每个子系统都需要进行相应的更新和配置,增加了维护的工作量。

3、数据共享和交互困难:如果每个子系统都是独立的,它们之间的数据共享和交互可能会变得困难。这可能会导致数据不一致或数据重复的问题,影响医疗信息系统的可靠性和准确性。

4、用户体验不一致:如果医疗信息系统中每个子系统都有不同的用户界面和操作方式,这可能会影响用户的使用体验。如果每个系统使用的底层框架不统一,用户需要适应不同的系统操作方式,增加了学习成本和操作难度。

5、系统性能问题:如果每个子系统都是独立的可执行文件,它们可能会在系统启动时加载不必要的代码和资源,导致系统启动速度变慢。此外,如果每个子系统都有自己的内存占用和进程,可能会增加系统的资源消耗和性能负担。

6、基于以上几点,越来越多的医院建立了完整的his系统,实现了一体化his系统,集成了包括预约挂号系统、门诊系统、住院系统、电子病历系统、物流系统等子系统,实现了医疗模块的高度集成。虽然一体化设计,整合了系统资源,共享了系统公共资源,降低了医疗机构的实体资源要求,减少了运维成本,但由于每个模块都运行在一个应用程序中,会出现应用程序内存增长过快,从而导致系统内存溢出,引发系统闪退等问题。每次出现这个情况时候只能关闭程序中的所有子模块,重新登录进入系统,有可能导致正在操作的流程数据丢失。

7、在背景技术部分中公开的以上信息只是用来加强对本文所描述技术的背景技术的理解。因此,背景技术中可能包含某些信息,这些信息对于本领域技术人员来说并未形成在已知的现有技术。


技术实现思路

1、有鉴于此,本技术提供了一种医院信息系统,以解决至少一个前面提出的技术问题。

2、为实现上述目的,本技术提供的医院信息系统,包括安装在同一目录下的主程序、子模块加载程序以及多个子模块;

3、所述子模块包含预设的动态库,用于实现预设的医院业务功能;

4、所述子模块加载程序封装了调用主进程通讯的所有方法,用于根据入参采用进程的方式,加载目标子模块,得到子进程,并建立所述主程序与所述子进程的通讯链接;

5、所述主程序用于,将各目标子模块的入口展示在主界面中,以进程的方式启动子模块加载程序以加载各目标子模块,并实现与各子进程的交互,其中,各目标子模块为关联于用户的一个或多个子模块。

6、优选地,所述主程序将各目标子模块的入口展示在主界面中的过程,包括:

7、用户登录成功后,根据所述用户的用户信息,获取关联于所述用户的各目标子模块,以及获取每一目标子模块的模块信息;

8、基于各目标子模块的模块信息,将各目标子模块的入口以菜单形式展示在主界面中,每一目标子模块的入口被定向至一页签控件。

9、优选地,所述主程序以进程的方式启动子模块加载程序以加载各目标子模块的过程,包括:

10、针对每一待展示的目标子模块:

11、基于所述目标子模块的模块信息生成入参,并基于所述入参,以进程的方式启动一子模块加载程序,得到子进程;

12、将所述子进程添加到所述主程序的进程容器中。

13、优选地,基于所述目标子模块的模块信息生成入参,并基于所述入参,以进程的方式启动所述子模块加载程序,得到子模块序进程的过程,包括:

14、获取户信息、用户权限信息、应用程序配置信息以及主进程的监听端口;

15、基于用户信息、用户权限信息、应用程序配置信息、主进程的监听端口以及待展示的目标子模块的模块信息,生成临时文件;

16、以对应于所述临时文件的上下文路径作为入参,以进程的方式启动所述子模块加载程序,得到子进程。

17、优选地,基于用户信息、用户权限信息、应用程序配置信息、主进程的监听端口以及待展示的目标子模块的模块信息,生成临时文件的过程,包括:

18、将用户信息、用户权限信息、应用程序配置信息、主进程的监听端口以及待展示的目标子模块的模块信息序列化为json字符串;

19、以预设的加密算法对所述json字符串进行加密,并保存到临时文件中。

20、优选地,所述子模块加载程序根据入参采用进程的方式加载目标子模块,得到子进程的过程,包括:

21、根据入参,获取上下文对象、主进程的监听端口以及目标子模块的模块信息;

22、基于所述上下文对象,反射目标子模块的模块信息,并设置目标子模块组件的运行类型为进程模式,得到子进程以及对应于目标子模块的功能界面;

23、将所述功能界面以控件形式加载到子模块加载程序的进程窗体;

24、子模块加载程序的进程窗体通过tcp协议连接至主进程的监听端口,在连接成功后生成guid,并基于所述guid,将子进程添加到所述主程序的进程容器中。

25、优选地,所述子模块加载程序建立所述主程序与所述子进程的通讯链接的过程,包括:

26、建立一条基于tcp协议的客户端链接,所述客户端链接用于处理主进程与子进程之间的消息收发。

27、优选地,基于所述guid,将子进程添加到所述主程序的进程容器中的过程,包括:

28、将子进程的guid、子进程端口、子模块菜单信息、模块信息回传至所述主程序的进程容器中。

29、优选地,主进程的监听端口以及子进程端口均为通过内存映射文件mmf方式获取的。

30、优选地,所述主程序通过一条基于tcp协议的客户端链接与一子进程通讯,所述主程序实现与每一子进程的交互的过程,包括:

31、将所述客户端链接的端口绑定至所述子进程的进程id,得到所述子进程的业务处理端口;

32、将所述子进程的模块信息添加到进程容器中,并将所述业务处理端口绑定到新的页签控件中;

33、通过所述页签控件、所述业务处理端口以及所述进程容器,实现主程序与所述子进程的交互。

34、经由上述的技术方案可知,本技术提供的医院信息系统,包括安装在同一目录下的主程序、子模块加载程序以及多个子模块,所述目录下所有资源均可以共享调用。其中,所述子模块包含预设的动态库,用于实现预设的医院业务功能,如门诊系统功能、住院系统功能、电子病历系统功能等。所述子模块加载程序封装了调用主进程通讯的所有方法,用于根据入参采用进程的方式,加载目标子模块,得到子进程,并建立所述主程序与所述子进程的通讯链接。所述主程序用于将各目标子模块的入口展示在主界面中,以进程的方式启动子模块加载程序以加载各目标子模块,并实现与各子进程的交互。其中,各目标子模块为关联于用户的一个或多个子模块。从上面记载的内容可知,主程序以及每一子进程均为独立的进程。在本技术提供的医院信息系统中,内存占用较大的进程集中在负责具体业务功能的各子进程中,因此,最有可能出现oom(out of memory,内存溢出)的进程为各子进程,由于windows中的内存是对进程独立分配的,因此,子进程的崩溃不会影响其他进程,只需要重新加载崩溃的进程即可恢复系统的正常使用,提高了用户体验。此外,进程化加载使得各子模块可以以模块化的方式进行管理和维护,即每个模块可以根据需要进行单独的更新、修复或扩展,而不影响其他模块的运行。进一步地,由于通过各子模块实现各业务功能,便于模块解耦及模块组件化,可以简化开发流程,提高开发效率;当需要添加新的功能或服务时,只需要开发新的子模块并将其加载到系统中即可,不需要对现有系统进行大规模的修改。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1