发明名称 用于医疗管理的计算机屏幕信息提取方法
摘要 本发明涉及一种从封闭的HIS系统中提取需要的特定文本信息,并将信息输入到另一PACS系统中供医疗管理使用的方法。通过设置系统钩子、取得进程地址、运行系统钩子、文本信息输出、获取光标位置、设置窗口文本等程序,完成文本信息的自动传输交换。本发明提供了一种能通过提取电脑屏幕显示信息,实现不同系统间信息的自动获取和信息的自动转发的功能,满足了PACS系统提取HIS系统患者信息的要求,提高了医务人员的工作效能,降低了因人为疏忽导致患者信息差错引发医疗事故和医患纠纷的几率。
申请公布号 CN101782852A 申请公布日期 2010.07.21
申请号 CN201010013620.0 申请日期 2010.01.19
申请人 西安华海医疗信息技术股份有限公司 发明人 熊友生;闫利军;任杨;罗彦博;马天德
分类号 G06F9/44(2006.01)I 主分类号 G06F9/44(2006.01)I
代理机构 代理人
主权项 用于医疗管理的计算机屏幕信息提取方法,其特征在于,包括以下步骤:1)设置系统钩子:使用窗口钩子函数SetWindowHook设置鼠标钩子,以及时响应鼠标消息并获取鼠标停留窗口对应的HIS应用程序;2)取得进程地址:调用函数GetProcAddress取得程序进程入口API的前五个字节,使用其中4个字节的地址,设置系统HIS应用程序接口API钩子;3)运行系统钩子:调用系统内部钩子运行函数AllocCsToDsAlias,完成对屏幕显示输出内容截获监控;4)文本信息输出:使用进程地址,监控文本输出函数TextOutW和ExtTextOutW,开头执行跳转jmp语句,跳转到自己的处理代码里;当鼠标在屏幕一区域停留后,取得鼠标当前位置后,以鼠标位置为中心生成一个矩形,并给操作系统挂上API钩子;使用重绘矩形函数InvalidateRect,让这个矩形产生重画消息,通过应用程序接口API钩子截获输出字符;在电脑鼠标移动时,调用获取光标位置函数GetCursorPos和获取窗口函数WindowFromPoint获取鼠标位置下的控件的句柄;使用获取窗口属性函数GetWindowLong取得控件的类型和显示字符和字符显示尺寸;依照字符显示尺寸调整矩形的大小,首次绘制矩形以鼠标位置为中心,使用字符尺寸的1.5倍行高为高、3倍行高为宽度,当API钩子截获字符后,按照向左、向右交替每次宽带增加一倍字符行高的方式,分别向左右两个方向扩展矩形尺寸;将每次新截获的字符字符与上次截获字符比较,当截获首字符不再增加时,停止向左的矩形尺寸扩展;同样,当尾字符不再增加是,停止向右的矩形尺寸扩展。确保API钩子截获的字符信息完整准确,提高信息获取的准确性;如果API钩子截获的字符,则将字符保存;5)获取光标位置:并执行取得进场地址操作,取得需要输入文本信息PACS应用程序的地址;通过调用获取光标位置函数GetCursorPos和获取窗口函数WindowFromPoint,获取鼠标位置下输入窗口的控件的句柄,并使用获取窗口属性函数GetWindowLong函数取得控件的类型;6)设置窗口文本:当操作者使用鼠标右键菜单确认信息输出,使用查询窗口函数FindWindow和FindWindowEx依次获取窗口句柄和输入控件句柄,并自动完成信息录入操作;将已获取的文本信息输出使用设置窗口文本函数SetWindowText填写到鼠标位置处控件的输入框中;当需要重复文本信息传输录入操作时,窗口钩子持续监控HIS应用程序鼠标已经选定区域,当屏幕输出的文本显示信息发生变化时,自动提取文本信息并将文本内容填写到PACS应用程序中对应的窗口控件中,完成文本信息的自动传输交换。
地址 710075 陕西省西安市高新区团结南路21号