一种文档中图片标注及再现标注的方法 技术领域:
本发明涉及一种图片处理方法,尤其涉及一种文档中图片标注及再现标注的方法,属于电子病历信息化相关领域。
背景技术:
目前,在医院现有的电子病历系统实现过程中。大部分现有的电子病历信息系统在电子病历数据主要包含文档电子病历数据和除文字以外其他多媒体电子病历数据。对于文字类电子病历数据可以采用一定数据格式文件如XML格式存储。但对于电子病历中多媒体如图片此类数据,大多数采用原有多媒体格式数据存储。如GIF、BMP等格式。而在实际临床医生进行病历书写时,医生常常习惯在病历中插入的一些医学图片上做出针对当前患者病情的详细标注以说明。那么,很多现有的电子病历系统就采用提供图片编辑器让医生在原有图片上编辑生成一副新的图片放入电子病历文档中。
然而,按照现有的实现方式。就会出现当患者病历多次标注,对于多媒体图片的标注信息就会产生很多中间过程的图片数据,而且随着医生介入增多和病历审签处理次数增多,产生很多图片从而使媒介存储增长。而且,对于每次标注都产生一副新的图片媒介,会导致以后对电子病历数据进行临床病历数据应用分析时存在着难度,对于已经形成多媒体格式图片媒介无法进行有效的全文检索分析。
发明内容:
本发明目的在于提供一种文档中图片标注及再现标注的方法,其应用到医院现有电子病历系统中,可以为医生提供对病历文档中的医学图片持续进行病历信息的标注处理过程和方法,从而改变现有电子病历对于医学图片标注处理存在的问题,使医生在图片上面的标注能够形成有效的可以进行全文检索分析的XML格式数据,同时,也减少原有医学图片标注存储量的问题。
一种文档中图片标注的方法,其步骤为:
1)建立一图片库表用于存储图片在图片库中的索引;
2)建立一图片标注符号库用于存储图片标注符号;
3)用户登录系统后选取所要标注的文档;
4)系统通过所述图片库表将所选文档中的图片调入绘图标注窗口;
5)系统去所述图片标注符号库获取用户所选取的标注符号;
6)系统根据用户选取的图片标注位置,调用所选取的标注符号进行图片标注;
7)系统将标注参数作为该图片标签对象的附加属性进行存储。
所述图片库表的字段包括:图片编码、图片名称、适用业务科室、图片格式、图片存储路径。
所述图片标注符号库的属性信息包括:符号编码、符号名称、符号含义、标注符号绘制类型、符号绘制参数。
所述标注符号绘制类型包括:圆形、矩形、直线;所述符号绘制参数的实现方法为:首先根据所选标注符号绘制类型选取Java的java.awt.Graphics类中绘图函数,然后绘图函数根据绘制图形的坐标参数,在运行时动态产生绘制符号。
所述系统将所选文档中的图片调入绘图标注窗口的方法为:通过传入的原始图片URL参数,利用URLConnection对象获取原始图片的数据流,程序声明java.awt.image.BufferedImage类对象,将原始图片数据流载入BufferedImage对象实例中,调用所述BufferedImage对象的getGraphics方法获得该图片绘图接口类对象。
所述标注参数包括:标注人、时间、位置、标注符号、标注注释、标注操作;所述标注操作的操作类型包括:删除、修改、增加;所述标注参数保存于该文档XML格式文件的Image标签对象附加属性数据中。
一种文档中图片再现标注的方法,其步骤为:
1)用户登录系统后选取所要再现标注的文档;
2)系统通过图片库表将所选文档中的图片调入绘图标注窗口;所述图片库表为用于存储图片在图片库中的索引;
3)系统将该图片标签对象的附加属性和用户登录信息传递给标注图片动态生成类;
4)标注图片动态生成类根据接收数据确定绘制范围,再现图片标注信息。
所述方法步骤2)之后,系统首先判断所选图片标签对象的附件属性是否为空,如果为空则提示为未标注图片;如果附加属性不为空,则进行所述步骤3)。
所述方法步骤3)中,系统提供用户选取标注查看方式,并将用户所选取的标注查看方式传递至标注图片动态生成类;所述标注查看方式包括:个人标注查看、所有人标注查看、留痕查看、整洁查看。
所述标注图片动态生成类根据接收数据确定绘制范围,再现图片标注信息的方法为:
1)根据标注绘制参数确定绘制范围;
2)根据传入的标注查看方式确定对标注数据展示进行相应过滤;
3)根据传入的标注符号类型,系统去图片标注符号库获取该标注符号绘制参数绘制该标注符号;所述图片标注符号库为用于存储图片标注符号;
4)根据传入标注坐标位置,调用Graphics接口中绘图函数在相应的坐标位置绘制相应的标注符号图形;
5)根据传入的标注注释文字和对应标注符号坐标位置,调用相应的Graphics接口中图函数drawRoundRect绘制标注注释信息框,然后调用drawString将传入的标注注释文字绘制到注释框区域内;
6)调用com.sun.image.codec.jpeg.JPEGImageEncoder JPEG图像编码工具类中的encode将图片实例编码成http相应的格式数据流返回,再现图片标注信息。
本发明的优点与积极效果:
通过本发明创造,对于现有医院电子病历信息系统达到以下效果:
1)可以进一步扩大医院电子病历信息化范围,可以对病历中出现除文字以外的医学图片媒介进行信息化处理。通过本发明,可以让不同医生、不同审签级别对于医学图片实现分层次病历信息地标注。让用户在病历书写和浏览时形象展示患者相关部位病情信息。
2)对于病历图片标注电子病历数据采用图片模板和图片标注信息分离方式,可以让电子病历数据既可以达到对于每个医生每次审签标注信息都能记录和编辑,同时,又不用把中间过程医学图片存储,使病历数据存储量大大下降。
3)另外,通过本发明的对于标注的处理过程和方法,可以让所有图片媒介的标注信息也可以采用可结构化分析XML格式数据存储,可以让电子病历对于图片标注信息也可以实现全文检索分析。
4)通过本发明可以让医生在电子病历书写过程中对于医学图片媒介的标注实现单独审签留痕查看和处理。并可以定制自己的图片标注符号字典。对于病历书写过程中每次标注都可以查看、检索和编辑处理,对于每次审签过程中标注结果实现留痕查看和整洁显示。
附图说明:
图1、医学图片标注处理流程示意图;
图2、医学图片再现标注方法示意图。
具体实施方式:
本发明包括图片标注和再现标注两部分,现结合附图详细描述本发明的技术方案。
一、一种文档中图片标注方法:
(1)建立基础系统字典:
原始医疗图片库:
首先要在电子病历系统数据库建立一张医疗图片库表。此张表包含图片编码、图片名称、适用业务科室、图片格式、图片存储路径等字段。在这张字典表中,相应的医院各业务科室可以把各自在病历文档书写过程中需要使用的医学图片维护进去,这张表只存储图片库索引,至于图片介质可以放到相应文件服务器上。
图片标注符号库:
在病历书写进行图片标注时,医生习惯利用一些约定俗成的特殊符号在点选的图片位置产生符号标记。所以我们事先分析总结常见的医生使用的符号形成符号标注库字典。在此符号库包含符号编码、符号名称、符号含义、标注符号绘制类型、符号绘制参数。
在这些属性中关键的是符号绘制参数,此属性主要记录符号绘制坐标相对轨迹坐标参数。因为对于常见的特殊符号我们都是可以利用Java的java.awt.Graphics类中绘图函数根据绘制图形的坐标参数可以在运行时动态产生绘制符号。
针对绘图函数,对标注符号绘制类型进行区分,常见几种类型如圆形、矩形、直线。这样在进行标注时候,程序在编制时区分标注所选类型,并根据标注所选符号类型不同调用不同java.awt.Graphics类中绘图函数来绘制标注符号。
(2)业务应用处理过程,如图1所示。
1)医生登录、选择病人进行病历文档书写:首先,作为进行病历书写的医生根据相应的电子病历系统用户管理分配的用户名和密码登录进入电子病历系统。系统会列出当前医生主管的病人列表,医生可以选择某位病人的电子病历文档进入相应书写。如点击2号床病人进入入院志病历文档的书写。
2)识别判断病历文档中的图形元素:在进入某份病历文档的书写工作区域时侯,系统根据当前文档中的页面元素Html标签,识别出页面中<Image>标签类型图形元素,并得到该标签对应图形元素属性值。通过传入的原始图片URL参数,利用URLConnection对象获取原始图片的数据流,程序声明java.awt.image.BufferedImage类对象,将原始图片数据流载入BufferedImage对象实例中。
3)通过调用刚才声明BufferedImage对象的getGraphics方法获得该图片绘图接口类对象;
4)选取标注符号:可以从标注工具栏列出可选的标注符号;通过传入的标注符号类型,系统去标注符号字典表获取该标注符号绘制参数。
5)选择标注图片位置:标注工具在相应位置产生标注符号,同时从标注位置开始延伸到原始图片边缘产生标注注释信息框;根据传入标注坐标位置,程序通过调用Graphics接口中绘图函数如setColor设置颜色、fillRect填充矩形、drawLine绘制直线、drawRoundRect绘制矩形、drawOval绘制椭圆(可调整为圆形)在相应的坐标位置绘制相应的标注符号图形。
6)编辑标注注释文字:用户可以在标注注释信息栏列表对相应的标注注释信息修改、删除。通过传入的标注注释文字和对应标注符号坐标位置,程序调用相应的Graphics接口中绘图函数drawRoundRect绘制标注注释信息框,然后调用drawString将传入的标注注释文字绘制到注释框区域内。
7)当医生标注完毕,系统自动产生当前标注数据参数:如标注人、时间、位置、标注符号、标注注释、标注操作(如果是对别人标注的操作,记录操作类型:删除、修改、增加)。将这些参数传递至动态标注图像生成服务类CreateImage,该服务会返回新生成图像Http格式对象流,并将其显示到当前文档页面Image对象标签位置。
8)在病历文档保存时候,将相应图片标注信息就作为其中Image标签对象的附加属性保存到病历文档XML格式数据中;而原始图片不做修改。这样就实现图片和标注产生数据分开存储。
二、一种文档中图片再现标注的方法,其流程如图2所示:
1)医生登录、选择病人进行病历文档书写:首先,作为进行病历书写的医生根据相应的电子病历系统用户管理分配的用户名和密码登录进入电子病历系统。系统会列出当前医生主管的病人列表,医生可以选择某位病人的电子病历文档进入相应书写。如点击2号床病人进入入院志病历文档的书写。
2)识别判断病历文档中的图形元素:在进入某份病历文档的书写工作区域时侯,系统根据当前文档中的页面元素Html标签,识别出页面中<Image>标签类型图形元素,并得到该标签对应图形元素属性值。通过传入的原始图片URL参数,利用URLConnection对象获取原始图片的数据流,程序声明java.awt.image.BufferedImage类对象,将原始图片数据流载入BufferedImage对象实例中。
3)通过调用刚才声明BufferedImage对象的getGraphics方法获得该图片绘图接口类对象;
4)判断是否标注过:程序需要针对找到Image对象的标签进行判断,如果标注数据信息为空,说明没有进行标注过。如果非空说明此图片已经进行标注。
5)如果图片已经进行标注过,程序调用标注图片动态生成类CreateImage,将当前登录人、标注查看方式(个人标注查看、所有人标注查看、留痕查看、整洁查看;默认为整洁查看)、当前Image对象对应的标注属性参数串传递给标注图片动态生成类。
6)确定绘制范围:在绘制动态标注信息,程序根据传入标注绘制参数(比如绘制标注点的X、Y坐标值,所有的标注符号,标注人、标注时间、标注注释)确定绘制范围,根据传入的标注查看方式确定是将当前人的标注、所有人的标注、留痕的标注还是整洁的标注展示进行相应过滤标注数据。如果是留痕的,还要区分是删除还是添加,删除用红色、添加用绿线进行区分标注绘制。
7)动态绘制标注符号:通过传入的标注符号类型,系统去标注符号字典表获取该标注符号绘制参数。同时根据传入标注坐标位置,程序通过调用Graphics接口中绘图函数如setColor设置颜色、fillRect填充矩形、drawLine绘制直线、drawRoundRect绘制矩形、drawOval绘制椭圆(可调整为圆形)在相应的坐标位置绘制相应的标注符号图形。
8)动态绘制标注注释:通过传入的标注注释文字和对应标注符号坐标位置,程序调用相应的Graphics接口中绘图函数drawRoundRect绘制标注注释信息框,然后调用drawString将传入的标注注释文字绘制到注释框区域内。
9)动态生成图片对象:当所有标注信息绘制完毕。这时调用com.sun.image.codec.jpeg.JPEGImageEncoder JPEG图像编码工具类中的encode将图片实例编码成http相应的格式数据流返回。
三.独立存储标注数据的应用:
1)图片标注的全文检索:在电子病历后期进行科研检索分析应用过程中,程序可以利用DOM对象定位相应的Image对象的标注参数串中标注符号为某些符号的,标注注释文字出现那些文字的全文检索分析。