电子病历痕迹保留的方法与流程

文档序号:20934352发布日期:2020-06-02 19:15阅读:1121来源:国知局
电子病历痕迹保留的方法与流程
本发明涉及文本编辑
技术领域
,具体地说,涉及电子病历痕迹保留的方法。
背景技术
:在电子病历文本编辑应用中,痕迹保留是一个很重要的功能。在卫生部发布的电子病历应用规范中明确了理论上的电子病历系统必须要有痕迹保留功能。目前大部分痕迹保留都是简单的记录,同一份病历,保存多份内容,然后全文对比,新版本和旧版本左右分栏显示,并标记出两个文件之间的内容差异。这种方法虽然也能应付医院的需求,不过不便于应用,也没有记录病历新增加内容、删除原来内容,修改操作人信息,修改操作时间点信息。技术实现要素:本发明的目的在于提供电子病历痕迹保留的方法,以解决上述
背景技术
中提出的问题。为实现上述技术问题的解决,本发明的目的之一在于,提供一种电子病历痕迹保留的方法,其方法包括如下步骤:s1、a医生新增一份病历,保存病历的时候,会把这份病历的每一个信息节点的内容都存储在自定义属性内;s2、上级医生b修改这份病历后,保存病历的时候,会把有修改的信息节点的内容跟该信息节点已存储在自定义属性内的内容进行文本对比,并保存痕迹操作的记录;s3、a医生查看病历,点击痕迹视图,会将痕迹操作记录从文档中的自定义属性取出来,显示在文档上面,鼠标移动到有颜色的字体下,会显示某某医生在某某时刻新增或删除(红色字体为删除,蓝色字体为新增)。作为优选,所述s2中,文本对比的方法包括如下步骤:s2.1、获取到有修改的信息节点,信息节点旧文本内容,信息节点新文本内容;s2.2、判断旧文本内容是否为空,如果旧文本内容为空,新文本内容不为空,则新文本内容在痕迹操作记录中全部标记为新增;s2.3、判断新文本内容是否为空,如果新文本内容为空,旧文本内容不为空,则旧文本内容在痕迹操作记录中全部标记为删除;s2.4、通过旧文本内容、新文本内容得到两个字符串最小编辑距离的动态规划二维数组;假设旧文本:感冒发烧;新文本:感冒咳嗽,则通过最小编辑距离的动态规划得到二维数组为:感冒发烧01234感10123冒21012发32112烧43222s2.5、根据最小编辑距离的动态规划二维数组将旧文本内容和新文本内容的不同部分设为空格,得到旧文本:感冒;新文本:感冒;s2.6、比较旧文本内容的源字符串(感冒发烧)和目标字符串(感冒),当目标字符串字符为空格时,源字符串对应字符用<span></span>括起来,得到旧文本内容修改字符:感冒<span>发烧</span>;s2.7、旧文本内容修改字符:表示已被删除的字符,从旧文本内容修改字符中把被<span></span>包含的文本取出来,标记为删除操作,连同当前修改医生,修改时间一起作为痕迹操作记录对象存储在文档中自定义节点里面:<fontcolor="red"title="***在2019-11-1119:01:53删除"><strike>发烧</strike></font>;s2.8、比较新文本内容的源字符串(感冒咳嗽)和目标字符串(感冒),当目标字符串字符为空格时,源字符串对应字符用<span></span>括起来,得到新文本内容修改字符:感冒<span>咳嗽</span>;s2.9、新文本内容修改字符:表示新增的字符,从新文本内容修改字符中把被<span></span>包含的文本取出来,标记为新增操作,连同当前修改医生,修改时间一起作为痕迹操作记录对象存储在文档中自定义节点里面:<fontcolor="#0000ff"title="***在2019-11-1119:01:53新增"><add>咳嗽</add></font>。作为优选,所述动态规划的方程公式如下:其中:作为优选,所述s2.5中,根据最小编辑距离的动态规划二维数组将旧文本内容和新文本内容的不同部分设为空格的计算步骤包括如下步骤:s2.5.1、假设动态规划二维数组为distance,行数i为distance.length-1,列数j为distance[0].length-1;mindistance为最小编辑距离distance[i][j],s为旧文本,t为新文本;s2.5.2、当i大于0且j也大于0时,进行判断;s2.5.3、当i大于0时,s字符串在i位置的字符置换为空,且i减小一位数。重新执行判断,直至i小于等于0,结束该判断;s2.5.4、当j大于0时,t字符串在j位置的字符置换为空,且j减小一位数。重新执行判断,直至j小于等于0,结束该判断;s2.5.5、最后得到比较结果。作为优选,所述s2.5.2中,当i大于0且j也大于0时,进行判断的方法包括如下步骤:s2.5.2.1、判断distance[i][j-1]+1的值是否等于mindistance,如果等于则表示s字符串在i位置的字符和t字符串在j的字符不同,且s字符串在i位置的字符和t字符串在j-1位置的字符一样,将t字符串在j位置的字符置换为空,mindistance重新赋值为distance[i][j-1],j减小一位数;s2.5.2.2、如果上述条件不等于则判断distance[i-1][j]+1的值是否等于mindistance,如果等于则s字符串在i位置的字符和t字符串在j的字符不同,且s字符串在i-1位置的字符和t字符串在j位置的字符一样,将s字符串在i位置的字符置换为空,mindistance重新赋值为distance[i-1][j],i减小一位数;s2.5.2.3、如果上述条件不等于则判断distance[i-1][j-1]+1是否等于mindistance,如果等于则表示s字符串在i位置的字符和t字符串在j的字符不同,将s字符串在i位置的字符置换为空,将t字符串在j位置的字符置换为空,mindistance重新赋值为distance[i-1][j-1],i和j各减小一位数;s2.5.2.4、如果上述条件都不成立时,则表示s字符串在i位置的字符和t字符串在j的字符相同,i和j各减小一位数;s2.5.2.5、重复执行上述判断,直至i或者j其中一个值小于等于0,结束上述判断。本发明的目的之二在于,提供一种电子病历痕迹保留的装置,包括处理器、存储器以及存储在所述存储器中并在所述处理器上运行的计算机程序,所述处理器执行上述的计算机程序时实现如上述中任一所述的电子病历痕迹保留的方法的步骤。本发明的目的之三在于,一种计算机可读存储介质,所述存储介质中存储有至少一段程序,所述至少一段程序由上述的处理器执行以实现如上述中任一所述的电子病历痕迹保留的方法的步骤。与现有技术相比,本发明的有益效果:1、该电子病历痕迹保留的方法中,痕迹操作记录存储在文档自定义属性内,无需进行反复的前后端交互。2、该电子病历痕迹保留的方法中,痕迹可以直接显示在文档中,便捷于医生查阅。3、该电子病历痕迹保留的方法中,完全由一些对比算法(最小编辑距离计算算法、文本对比算法等)实现痕迹操作记录,避免效率低下的问题。4、该电子病历痕迹保留的方法中,将电子病历的修改痕迹保存,包括病历新增加内容、删除原来内容,修改操作人信息,修改操作时间点信息,实现清洁展现和打印,或修改历史记录展现和打印,且痕迹可以直接显示在文档中。附图说明图1为本发明的整体方法流程图;图2为本发明的文本对比的方法流程图;图3为本发明的根据最小编辑距离的动态规划二维数组将旧文本内容和新文本内容的不同部分设为空格的计算步骤流程图;图4为本发明的判断的方法流程图;图5为本发明的电子病历痕迹保留的装置结构图。具体实施方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。请参阅图1-图5所示,本发明提供一种技术方案:本发明提供一种电子病历痕迹保留的方法,其方法包括如下步骤:s1、a医生新增一份病历,保存病历的时候,会把这份病历的每一个信息节点的内容都存储在自定义属性内;s2、上级医生b修改这份病历后,保存病历的时候,会把有修改的信息节点的内容跟该信息节点已存储在自定义属性内的内容进行文本对比,并保存痕迹操作的记录;s3、a医生查看病历,点击痕迹视图,会将痕迹操作记录从文档中的自定义属性取出来,显示在文档上面,鼠标移动到有颜色的字体下,会显示某某医生在某某时刻新增或删除(红色字体为删除,蓝色字体为新增)。本实施例中,s2中,文本对比的方法包括如下步骤:s2.1、获取到有修改的信息节点,信息节点旧文本内容,信息节点新文本内容;s2.2、判断旧文本内容是否为空,如果旧文本内容为空,新文本内容不为空,则新文本内容在痕迹操作记录中全部标记为新增;s2.3、判断新文本内容是否为空,如果新文本内容为空,旧文本内容不为空,则旧文本内容在痕迹操作记录中全部标记为删除;s2.4、通过旧文本内容、新文本内容得到两个字符串最小编辑距离的动态规划二维数组;其中,假设旧文本:感冒发烧;新文本:感冒咳嗽,则通过最小编辑距离的动态规划得到二维数组为:感冒发烧01234感10123冒21012发32112烧43222s2.5、根据最小编辑距离的动态规划二维数组将旧文本内容和新文本内容的不同部分设为空格,得到旧文本:感冒;新文本:感冒;s2.6、比较旧文本内容的源字符串(感冒发烧)和目标字符串(感冒),当目标字符串字符为空格时,源字符串对应字符用<span></span>括起来,得到旧文本内容修改字符:感冒<span>发烧</span>;s2.7、旧文本内容修改字符:表示已被删除的字符,从旧文本内容修改字符中把被<span></span>包含的文本取出来,标记为删除操作,连同当前修改医生,修改时间一起作为痕迹操作记录对象存储在文档中自定义节点里面:<fontcolor="red"title="***在2019-11-1119:01:53删除"><strike>发烧</strike></font>;s2.8、比较新文本内容的源字符串(感冒咳嗽)和目标字符串(感冒),当目标字符串字符为空格时,源字符串对应字符用<span></span>括起来,得到新文本内容修改字符:感冒<span>咳嗽</span>;s2.9、新文本内容修改字符:表示新增的字符,从新文本内容修改字符中把被<span></span>包含的文本取出来,标记为新增操作,连同当前修改医生,修改时间一起作为痕迹操作记录对象存储在文档中自定义节点里面:<fontcolor="#0000ff"title="***在2019-11-1119:01:53新增"><add>咳嗽</add></font>。进一步的,动态规划的方程公式如下:其中:进一步的,s2.5中,根据最小编辑距离的动态规划二维数组将旧文本内容和新文本内容的不同部分设为空格的计算步骤包括如下步骤:s2.5.1、假设动态规划二维数组为distance,行数i为distance.length-1,列数j为distance[0].length-1;mindistance为最小编辑距离distance[i][j],s为旧文本,t为新文本;s2.5.2、当i大于0且j也大于0时,进行判断;s2.5.3、当i大于0时,s字符串在i位置的字符置换为空,且i减小一位数。重新执行判断,直至i小于等于0,结束该判断;s2.5.4、当j大于0时,t字符串在j位置的字符置换为空,且j减小一位数。重新执行判断,直至j小于等于0,结束该判断;s2.5.5、最后得到比较结果。具体的,s2.5.2中,当i大于0且j也大于0时,进行判断的方法包括如下步骤:s2.5.2.1、判断distance[i][j-1]+1的值是否等于mindistance,如果等于则表示s字符串在i位置的字符和t字符串在j的字符不同,且s字符串在i位置的字符和t字符串在j-1位置的字符一样,将t字符串在j位置的字符置换为空,mindistance重新赋值为distance[i][j-1],j减小一位数;s2.5.2.2、如果上述条件不等于则判断distance[i-1][j]+1的值是否等于mindistance,如果等于则s字符串在i位置的字符和t字符串在j的字符不同,且s字符串在i-1位置的字符和t字符串在j位置的字符一样,将s字符串在i位置的字符置换为空,mindistance重新赋值为distance[i-1][j],i减小一位数;s2.5.2.3、如果上述条件不等于则判断distance[i-1][j-1]+1是否等于mindistance,如果等于则表示s字符串在i位置的字符和t字符串在j的字符不同,将s字符串在i位置的字符置换为空,将t字符串在j位置的字符置换为空,mindistance重新赋值为distance[i-1][j-1],i和j各减小一位数;s2.5.2.4、如果上述条件都不成立时,则表示s字符串在i位置的字符和t字符串在j的字符相同,i和j各减小一位数;s2.5.2.5、重复执行上述判断,直至i或者j其中一个值小于等于0,结束上述判断。举例:以旧文本:感冒咳嗽,新文本:感冒发烧为例,其通过最小编辑距离动态规划得到二维数组为:感冒发烧01234感10123冒21012咳32112嗽43222值得注意的是:在计算机中,数组的计算都是从0开始的,所以数组的长度在计算中都会减1再进行计算;从第4行第4列开始比较,第4行第4列的值“2”为最小编辑距离;|感冒发烧01234感10123冒21012咳32112-嗽43222判断第4行的“嗽”是否和第3列的“发”以及第4列的“烧”相同;第4行第3列的值为“2”,加上“1”,值为“3”,该值大于最小编辑距离“2”,所以第4行的“嗽”和第3列的“发”以及第4列的“烧”不相同;判断第4列的“烧”是否和第3行“咳”以及第4行的“嗽”相同,第3行第4列的值为“2”,加上“1”,值为“3”,该值大于最小编辑距离“2”,所以第4列的“烧”和第3行“咳”以及第4行的“嗽”不相同;判断第4行的“嗽”是否和第4列的“烧”不相同,第3行第3列的值为“1”,加上“1”,值为“2”,等于最小编辑距离“2”,所以第4行的“嗽”和第4列的“烧”不相同,将第4行的“嗽”置换为空,第4列的“烧”置换为空;最小编辑距离变为第3行第3列的值“1”;|感冒发-01234感10123冒21012-咳32112-43222判断第3行的“咳”是否和第2列的“冒”以及第3列的“发”相同,第3行第2列的值为“1”,加上“1”,值为“2”,该值大于最小编辑距离“1”,所以第3行的“咳”和第2列的“冒”以及第3列的“发”不相同;判断第3列的“发”是否和第2行的“冒”以及第3行的“咳”相同,第2行第3列的值为“1”,加上“1”,值为“2”,该值大于最小编辑距离“1”,所以第3列的“发”和第2行的“冒”以及第3行的“咳”不相同;判断第3行的“咳”是否和第3列的“发”不相同,第2行第2列的值为“0”,加上“1”,值为“1”,等于最小编辑距离“1”,所以第3行的“咳”和第3列的“发”不相同,将第3行的“咳”置换为空,第3列的“发”置换为空;最小编辑距离变为第2行第2列的值“0”;判断第2行的“冒”是否和第1列的“感”以及第2列的“冒”相同,第2行第1列的值为“1”,加上“1”,值为“2”,该值大于最小编辑距离“0”,所以第2行的“冒”和第1列的“感”以及第2列的“冒”相同;判断第2列的“冒”是否和第1行的“感”以及第2行的“冒”相同,第1行第2列的值为“1”,加上“1”,值为“2”,该值大于最小编辑距离“0”,所以第2列的“冒”和第1行的“感”以及第2行的“冒”相同;判断第2行的“冒”是否和第2列的“冒”不相同,第1行第1列的值为“0”,加上“1”,值为“1”,大于最小编辑距离“0”,所以第2行的“冒”和第2列的“冒”是相同的,最小编辑距离不变;|感冒--01234-感10123冒21012-32112-43222判断第1行的“感”是否和第0列的“”以及第1列的“感”相同,第1行第0列的值为“1”,加上“1”,值为“2”,该值大于最小编辑距离“0”,所以第1行的“感”和第0列的“”以及第1列的“感”不相同;判断第1列的“感”是否和第0行的“”以及第1行的“感”相同,第0行第1列的值为“1”,加上“1”,值为“2”,该值大于最小编辑距离“0”,所以第1列的“感”和第0行的“”以及第1行的“感”不相同;判断第1行的“感”是否和第1列的“感”不相同,第0行第0列的值为“0”,加上“1”,值为“1”,大于最小编辑距离“0”,所以第1行的“冒”和第1列的“冒”是相同的,最小编辑距离不变;|感冒---01234感10123冒21012-32112-43222结束比较,得到最终结果为旧文本:感冒;新文本:感冒。参阅图5,示出了本发明实施例所涉及的提供一种电子病历痕迹保留的装置结构示意图,该装置包括处理器101、存储器102和总线103。处理器包101括一个或一个以上处理核心,处理器101通过总线103与处理器101相连,存储器102用于存储程序指令,处理器102执行存储器102中的程序指令时实现上述的电子病历痕迹保留的方法。可选的,存储器102可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随时存取存储器(sram),电可擦除可编程只读存储器(eeprom),可擦除可编程只读存储器(eprom),可编程只读存储器(prom),只读存储器(rom),磁存储器,快闪存储器,磁盘或光盘。此外,本发明还提供一种计算机可读存储介质,存储介质中存储有至少一段程序,至少一段程序由上述的处理器执行以实现如上述中任一的电子病历痕迹保留的方法的步骤。可选的,本发明还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述各方面电子病历痕迹保留的方法的步骤。本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,的程序可以存储与一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。以上显示和描述了本发明的基本原理、主要特征和本发明的优点。本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的仅为本发明的优选例,并不用来限制本发明,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内。本发明要求保护范围由所附的权利要求书及其等效物界定。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1