主线程COM对象的管理方法和终端设备技术

技术编号:15391396 阅读:80 留言:0更新日期:2017-05-19 04:44
本申请提供了一种主线程COM对象的管理方法和终端设备,该方法包括:启动电子病历系统的主线程时,在电子病历系统的界面的后台加载一个对象池,用于在对象池中填充COM对象;利用所述对象池完成对主线程的COM对象的移除、预创建和获取。缩短了用户等待COM对象被加载的时间,提升电子病历系统的响应速度,也有助于提高用户的工作效率。

Management method and terminal device of main thread COM object

The invention provides a management method of the main thread of the COM object and a terminal device, the method comprises: a main thread to start the electronic medical record system, the electronic medical record system interface to load an object pool, used to fill the COM objects in the object pool; the object of the main thread pool COM object removal, pre creation and acquisition. It shortens the time that the user waits for the COM object to be loaded, improves the response speed of the electronic medical record system, and also helps to improve the work efficiency of the user.

【技术实现步骤摘要】
主线程COM对象的管理方法和终端设备
本申请涉及电子病历
,尤其涉及一种主线程COM对象的管理方法和终端设备。
技术介绍
电子病历系统(electronicmedicalrecordsystem,EMRS)是医学专用软件。医院通过电子病历以电子化方式记录患者就诊的信息,包括:首页、病程记录、检查检验结果、医嘱、手术记录、护理记录等等,其中既有结构化信息,也有非结构化的自由文本,还有图形图像信息。涉及病人信息的采集、存储、传输、质量控制、统计和利用。在电子病历系统中,由于系统复杂,接口众多,经常会调用第三方组件对象,其中多数为组件对象模型(ComponentObjectModel,COM)对象。众所周知,COM对象大多数只能在主线程下进行创建与操作,这无疑会影响主线程的运行速度,减慢电子病历系统的反应速度。
技术实现思路
有鉴于此,本申请实施例提供了一种主线程COM对象的管理方法和终端设备,用以解决现有技术中对主线程下的COM对象缺乏管理而影响电子病历系统运行效率的技术问题。根据本申请实施例的一个方面,提供了一种主线程COM对象的管理方法,包括:启动电子病历系统的主线程时,在电子病历系统的界面的后台加载一个对象池,用于在对象池中填充COM对象;利用对象池完成对主线程的COM对象的移除、预创建和获取。根据本申请实施例的另一方面,提供了一种终端设备,包括:处理器;用于存储处理器可执行指令的存储器;其中,处理器被配置为:启动电子病历系统的主线程时,在电子病历系统的界面的后台加载一个对象池,用于在对象池中填充COM对象;利用对象池完成对COM对象的移除、预创建和获取。本申请实施例的有益效果包括:在启动电子病历系统的主线程时,在电子病历系统的后台记载一个对象池,利用该对象池完成对运行在主线程下的COM对象的管理,完成对COM对象的移除、预创建和获取等操作,缩短了用户等待COM对象被加载的时间,提升电子病历系统的响应速度,也有助于提高用户的工作效率。附图说明通过以下参照附图对本申请实施例的描述,本申请的上述以及其它目的、特征和优点将更为清楚,在附图中:图1是本申请实施例的一种主线程COM对象的管理方法;图2是本申请实施例的从对象池移除COM对象的流程示意图;图3是本申请实施例的在对象池中预创建COM对象的流程示意图;图4是本申请实施例的从对象池获取COM对象的流程示意图;图5是本申请实施例的一种终端设备的框图。具体实施方式以下基于实施例对本申请进行描述,但是本申请并不仅仅限于这些实施例。在下文对本申请的细节描述中,详尽描述了一些特定的细节部分。对本领域技术人员来说没有这些细节部分的描述也可以完全理解本申请。为了避免混淆本申请的实质,公知的方法、过程、流程、元件和电路并没有详细叙述。此外,本领域普通技术人员应当理解,在此提供的附图都是为了说明的目的,并且附图不一定是按比例绘制的。除非上下文明确要求,否则整个说明书和权利要求书中的“包括”、“包含”等类似词语应当解释为包含的含义而不是排他或穷举的含义;也就是说,是“包括但不限于”的含义。在本申请的描述中,需要理解的是,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。此外,在本申请的描述中,除非另有说明,“多个”的含义是两个或两个以上。对电子病历系统而言,用户(电子病历系统的使用者,通常是医护人员)通常更在乎打开电子病历时的系统响应时间,用户认为打开电子病历时的等待时间越短越好。但是,电子病历系统中,电子病历对象的创建周期是不会缩短的,如果每次打开病历都直接创建一个电子病历对象,那么创建电子病历对象的时间就会叠加在某次鼠标或界面按钮点击事件下,就会影响到打开病历时的响应时间。在优化电子病历系统时,本申请的专利技术人发现,电子病历系统在调用我们所采购的第三方病历书写控件时,往往会耗时较长。经过分析得出结果,其中大部分时间是由于创建第三方病历书写控件对象时耗时过长。并且由于第三方病历书写控件是以COM对象方式提供,由于其自身的限制,仅能够在主线程下进行操作。这个问题无疑造成我们电子病历系统反应慢的主要因素。经过测试,发现创建一个病历书写控件对象,需要1000毫秒左右的时间,而打开一个病历文件仅需要20毫秒左右的时间。可以看出,如果减少这1000毫秒是对系统进行优化的重点。本申请的专利技术人进一步发现,虽然用户非常在意病历打开时的等待时间,但几乎没有用户会在打开病历后就立刻进行编辑。根据通常的使用习惯,用户会先阅读或者检查该病历已经书写的病历内容,甚至会检查病历上的患者基本信息是否有错误。而根据一般人的阅读速度,这段时间至少要5~10秒的碎片时间。那么,在电子病历打开后,用户没有任何操作的系统闲置时间段内,可以对电子病历系统主线程下运行的COM对象进行检测、移除已经释放的COM对象或者预创建新的COM对象,这是非常值得充分利用的时间段。基于以上考虑,本申请实施例在启动电子病历系统的主线程时,在电子病历系统的后台创建一个对象池,以用来存放主线程下的COM对象,利用该对象池完成对运行在主线程下的COM对象的管理,完成对COM对象的移除、预创建和获取等操作,从而加快电子病历系统的响应速度,提升用户的工作效率。本申请实施例提供了一种主线程COM对象的管理方法,适用于终端设备,终端设备可以是移动电话,计算机,数字广播终端,消息收发设备,平板设备,医疗设备,健身设备,医疗管理控制台等。如图1所示,该方法包括以下步骤。S10,启动电子病历系统的主线程时,在电子病历系统的界面的后台加载一个对象池,用于在对象池中填充COM对象。电子病历系统的主线程运行后,在后台创建一个可访问的对象池,用来存放在该主线程下运行的COM对象。由于COM对象不能进行异步和多线程操作,为了降低其对主线程的运行速度的影响,因此通过对象池来统一管理主线程下的COM对象。对象池可以是一个类,将主线程下运行的各个COM对象作为该类下的元素,例如List<T>类、ArrayList类等。S11,利用对象池完成对主线程的COM对象的移除、预创建和获取。对COM对象的管理包括移除、预创建和获取等操作。移除是把对象池内不可用的COM对象及时清理;预创建是在系统闲置时间在对象池内创建预留的COM对象,以便需要运行新的COM对象时可以直接使用,减少创建COM对象时的等待时间。获取是从对象池内直接获取到一个COM对象供用户使用,从而区别于现有的直接创建一个新的COM对象的方式。下面对上述移除、预创建、获取等过程分别进行说明。图2是本申请实施例从对象池中移除COM组件的流程示意图,包括以下步骤。S110,定期检测对象池内是否存在已经被释放或者产生异常的COM对象。S111,当对象池内存在已经被释放或者产生异常的COM对象时,移除已经被释放或者产生异常的COM对象。在后台创建对象池的同时或之后,再启动一个定时器,用来周期性的检测该对象池内的COM对象。在主线程下运行异常或报错的COM对象被认为是异常的COM对象。对于已经被释放(即不再被继续占用的)的COM对象和产生异常的COM对象及时进行清理,以保证对象池内COM对象都是有效且可用的。图3是本申请实施例在对象池中预创建COM组件时的流程示意图,包括本文档来自技高网...
主线程COM对象的管理方法和终端设备

【技术保护点】
一种主线程COM对象的管理方法,其特征在于,所述方法包括:启动电子病历系统的主线程时,在所述电子病历系统的界面的后台加载一个对象池,用于在所述对象池中填充COM对象;利用所述对象池完成对所述主线程的COM对象的移除、预创建和获取。

【技术特征摘要】
1.一种主线程COM对象的管理方法,其特征在于,所述方法包括:启动电子病历系统的主线程时,在所述电子病历系统的界面的后台加载一个对象池,用于在所述对象池中填充COM对象;利用所述对象池完成对所述主线程的COM对象的移除、预创建和获取。2.根据权利要求1所述的方法,其特征在于,利用所述对象池完成对所述COM对象的预创建包括:判断所述电子病历系统是否处于系统闲置时间;或者,是否首次加载COM对象;当前所述电子病历系统处于系统闲置时间时,或者,首次加载COM对象时,判断所述对象池内COM对象的数量是否小于或者等于1;当所述对象池内COM对象的数量小于或者等于1时,在所述对象池内创建一个COM对象。3.根据权利要求2所述的方法,其特征在于,当对象池内COM对象的数量等于0时,创建一个临时的COM对象并在所述电子病历系统的界面加载显示所述临时的COM对象对应的窗体。4.根据权利要求2所述的方法,其特征在于,从所述对象池获取一个COM对象并在所述电子病历系统的界面加载显示所述COM对象对应的窗体包括:获取所述对象池顶端的COM对象,并在所述电子病历系统的界面加载显示所述COM对象对应的窗体;从所述对象池中移除所述池顶端的COM对象。5.一种终端设备,其特征在于,包括:处理器;用于存储处理器可执行指令的存储器;其中,所述处理器被配置为:启动电子病历系统的主线程时,在所述电子病历系统的界面的后台加载一个对象池,用于在所述对象池中填充COM对象;利用所述对象池完成对所述COM对象的移除、预创建和获取。6.根据权利要求1所述的方法或权利要求5所述的终端设备,其特征在于,利用所述对象池完成对所述COM对象的移除包括:定期检测所述对象池内是否存在已经被释放或者产生异常的COM对象;当所述对象池内存在已经被释放或者产生异常的COM对象时,移除所述已经被释放或者产生异常的COM对象。7.根据权利要求5所述的终端设备,其特征在于,利用所述...

【专利技术属性】
技术研发人员:李申姜跃滨潘文丰
申请(专利权)人:北京天健源达科技有限公司
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1