本发明涉及医疗信息领域,更具体地,涉及一种将结构化报告生成自然语言报告的系统及其方法。
背景技术:
随着信息技术的发展和医疗信息化的建设,现在医院都在逐渐使用了结构化报告系统进行报告书写,但是输出到打印报告单上时,影像表现和诊断等信息显示形式单一,基本都是标签和值的形式,又或者是带数字和值的模式(1、2、3的模式),显然这种形式不能应用于所有类型报告中,而国内的医院和各个系统需求又需要文本报告,那就需要医生再重新写一份报告,或者在标签和值的报告形式上进行修改,生成我们的自然语言报告,这样,就增加了医生的工作量,降低了效率;同时,自然语言的报告又需要通过医院信息系统间的接口进行传导,增加了医院的成本。
技术实现要素:
有鉴于此,本发明的主要目的在于提供一种将结构化报告生成自然语言报告的系统及其方法,能够解决现有技术中存在的增加医生工作量、降低工作效率的问题。
为达到上述目的,本发明的技术方案是这样实现的:
一方面,本发明提供了一种将结构化报告生成自然语言报告的系统,包括获取模块、数据处理模块、合成模块和显示模块,其中,获取模块,与数据处理模块相连,用于提取病灶列表中的结构化数据,并将结构化数据发送给数据处理模块;其中结构化数据为该部位的病灶参数;数据处理模块,分别与获取模块和合成模块相连,用于基于病灶参数的属性,对结构化数据进行数据处理,并将处理后的结构化数据根据语言规则进行重新组合,转换成完整通顺的自然语言数据;合成模块,分别与数据处理模块和显示模块相连,用于基于病灶列表中的内容顺序,将自然语言数据进行排序整合,生成自然语言报告;显示模块,与合成模块相连,用于当用户对结构化报告编辑完成时,自动将自然语言报告显示到客户端。
优选地,数据处理模块还包括计算单元,用于当病灶参数的属性为数值时,根据数值自动计算出该部位病灶的大小。
优选地,数据处理模块还包括字符串处理单元,用于基于用户的需求,对结构化数据进行字符串转换。
优选地,数据处理模块还包括大小写转换单元,用于基于用户的需求,对结构化数据进行大小写的转换。
优选地,数据处理模块还包括分割单元,用于根据自然语言数据的语义,在每个自然语言数据之间设置相应的标点符号。
另一方面,本发明还提供了一种将结构化报告生成自然语言报告的方法,包括:获取模块提取病灶列表中的结构化数据,并将结构化数据发送给数据处理模块;其中结构化数据为该部位的病灶参数;数据处理模块基于所述病灶参数的属性,对结构化数据进行数据处理,并将处理后的结构化数据根据语言规则进行重新组合,转换成完整通顺的自然语言数据;合成模块基于病灶列表中的内容顺序,将自然语言数据进行排序整合,生成自然语言报告;显示模块在用户对结构化报告编辑完成时,自动将自然语言报告显示到客户端。
优选地,基于病灶参数的属性,对所述结构化数据进行数据处理,包括:当病灶参数的属性为数值时,数据处理模块中的计算单元根据数值自动计算出该部位病灶的大小。
优选地,基于病灶参数的属性,对结构化数据进行数据处理,还包括:基于用户的需求,数据处理模块中的字符串处理单元对结构化数据进行字符串转换。
优选地,基于病灶参数的属性,对结构化数据进行数据处理,还包括:基于用户的需求,数据处理模块中的大小写转换单元对结构化数据进行大小写的转换。
优选地,该方法还包括:数据处理模块中的分割单元根据自然语言数据的语义,在每个自然语言数据之间设置相应的标点符号。
本发明的技术效果:
1.由于本发明中设置了数据处理模块和合成模块,医生在书写结构化报告时,系统可以将结构化报告中的结构化数据进行相应的处理,并将处理后的结构化数据根据语言规则进行重新组合,转换成完整通顺的自然语言数据,并将自然语言数据进行排序整合,生成自然语言报告。使得医生既能使用结构化报告系统也能按照自然语言的规则形成自然语言报告,完成通顺的影像表现和诊断等内容,使报告流程顺利完成,省去了医生重新写报告的时间,减少了医生的工作量,提高了工作效率;同时,结构化报告数据也可以保留,作为日后医疗诊断的大数据统计查询分析;
2.由于本发明设置了计算单元,对结构化数据中涉及到数值的参数时,可以自动将各个数值进行计算,将相应的计算结果显示到自然语言数据中,使得医生看到自然语言报告后一目了然,很迅速地捕捉到重要数据,免得医生拿到数值后再计算相应的结果,来判断该部位病灶的大小及严重性,提高了医生的阅读效率;
3.由于本发明设置了字符串处理单元和大小写转换单元,可以对结构化数据中涉及到需要进行字符串转换或者大小写转化的数据进行相应的转换,比如结构化数据中涉及到的参数为2.15cm,为了满足医学使用习惯,我们需要转换成为以mm为单位的长度计量,故系统输出的自然语言报告则直接输出21.5mm,使得系统更加人性化,方便了医生使用;
4.由于本发明还设置了分割单元,可以根据自然语言数据的语义,在每个自然语言数据之间设置相应的标点符号,使得更加符合自然语言的阅读规则。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1示出了根据本发明实施例一的将结构化报告生成自然语言报告的系统结构示意图;
图2示出了根据本发明实施例二的将结构化报告生成自然语言报告的系统结构示意图;
图3示出了根据本发明实施例二的将结构化报告生成自然语言报告的系统中前列腺经线的相关结构化数据示意图;
图4示出了根据本发明实施例三的将结构化报告生成自然语言报告的系统结构示意图;
图5示出了根据本发明实施例四的将结构化报告生成自然语言报告的系统结构示意图;
图6示出了根据本发明实施例四的将结构化报告生成自然语言报告的系统的病灶列表示意图;
图7示出了根据本发明实施例四的将结构化报告生成自然语言报告的系统的病灶列表示意图;
图8示出了根据本发明实施例四的将结构化报告生成自然语言报告的系统中神经血管束的相关结构化数据示意图;
图9示出了根据本发明实施例五的将结构化报告生成自然语言报告的方法流程图;
图10示出了根据本发明实施例五的将结构化报告生成自然语言报告的方法中前列腺经线的相关结构化数据示意图;
图11示出了根据本发明实施例五的将结构化报告生成自然语言报告的方法的病灶列表示意图;
图12示出了根据本发明实施例五的将结构化报告生成自然语言报告的方法的病灶列表示意图;
图13示出了根据本发明实施例五的将结构化报告生成自然语言报告的方法中神经血管束的相关结构化数据示意图。
具体实施方式
下面将参考附图并结合实施例,来详细说明本发明。
实施例一
图1示出了根据本发明实施例一的将结构化报告生成自然语言报告的系统结构示意图;如图1所示,该系统包括:获取模块10、数据处理模块20、合成模块30和显示模块40,其中,
获取模块10,与数据处理模块20相连,用于提取病灶列表中的结构化数据,并将结构化数据发送给数据处理模块20;其中结构化数据为该部位的病灶参数;
例如,病灶参数可以为:神经血管束受累、有、右侧;也可以为横结肠-降结肠、分布、局限性、肠管长度12.cm等等各种病灶参数;
数据处理模块20,分别与获取模块10和合成模块30相连,用于基于病灶参数的属性,对结构化数据进行数据处理,并将处理后的结构化数据根据语言规则进行重新组合,转换成完整通顺的自然语言数据;
合成模块30,分别与数据处理模块20和显示模块40相连,用于基于病灶列表中的内容顺序,将自然语言数据进行排序整合,生成自然语言报告;
显示模块40,与合成模块30相连,用于当用户对结构化报告编辑完成时,自动将自然语言报告显示到客户端。
针对数据处理模块20对应的脚本语言为如下程序逻辑:
(1)变量定义
所有界面中的元素均自动定义为变量,脚本语言可以获取及修改其值,亦可直接定义新变量。
脚本语法:
Var(变量名称)
(2)分支判断规则
脚本语法:
(3)循环执行规则
脚本语法:
针对合成模块30对应的脚本语言为如下程序逻辑:
自定义函数及过程,由用户自行扩展的函数
脚本语法:
Fun_函数名(input)
Begin
自定义脚本内容
Output()
End。
例:定义Fun_words(input)
输入:胆囊、肾脏
输出:胆囊和肾脏
输入:肝脏、NULL、胆囊、肾脏
输出:肝脏、胆囊及肾脏
本发明的实施设置了数据处理模块和合成模块,医生在书写结构化报告时,系统可以将结构化报告中的结构化数据进行相应的处理,并将处理后的结构化数据根据语言规则进行重新组合,转换成完整通顺的自然语言数据,并将自然语言数据进行排序整合,生成自然语言报告。使得医生既能使用结构化报告系统也能按照自然语言的规则形成自然语言报告,完成通顺的影像表现和诊断等内容,使报告流程顺利完成,省去了医生重新写报告的时间,减少了医生的工作量,提高了工作效率;同时,结构化报告数据也可以保留,作为日后医疗诊断的大数据统计查询分析。
实施例二
图2示出了根据本发明实施例二的将结构化报告生成自然语言报告的系统结构示意图;如图2所示,数据处理模块20还包括计算单元202,用于当病灶参数的属性为数值时,根据数值自动计算出该部位病灶的大小。
比如,根据测量的相关数值可以自动计算出体积值、面积值、容积、指数、密度、范围等等。
针对计算单元对应的脚本语言为如下程序逻辑:
脚本语法:
@Computer(计算公式,附加参数)
例如:
输入:(3*3)+8
输出:17
图3示出了根据本发明实施例二的将结构化报告生成自然语言报告的系统中前列腺经线的相关结构化数据示意图,如图3所示,计算单元的计算流程为:
根据函数公式
输入:@Computer(Var(RL值)*Var(AP值)*Var(SI值),”0.2f”)
输出:1.97
该结构化数据输出的自然语言数据则为:“前列腺径线体积为1.97cm3。”
本发明的实施例设置了计算单元,对结构化数据中涉及到数值的参数时,可以自动将各个数值进行计算,将相应的计算结果显示到自然语言数据中,使得医生看到自然语言报告后一目了然,很迅速地捕捉到重要数据,免得医生拿到数值后再计算相应的结果,来判断该部位病灶的大小及严重性,提高了医生的阅读效率。
实施例三
图4示出了根据本发明实施例三的将结构化报告生成自然语言报告的系统结构示意图;如图4所示,
数据处理模块20还包括字符串处理单元204,用于基于用户的需求,对结构化数据进行字符串转换。
例如,结构化报告数据为2.15cm,为了满足医学使用习惯,我们需要把cm转换成mm的单位,字符串处理单元将结构化数据2.15cm分解为2.15和cm,然后根据运算规则2.15*10=21.5,再将cm转换成mm,即最后的输出自然语言数据为21.5mm。
数据处理模块20还包括大小写转换单元206,用于基于用户的需求,对结构化数据进行大小写的转换。
例如,结构化数据中会时常涉及到患者性别的,医生填写的如果是M/F/m/F/,若是需要大写的M/F就需要大小写转换单元来对该小写数据进行大写的转换。
再如,还有一些英文缩写的内容,比如BI-RADS(一种医学的分支名称)有的医生可能用了小写,我们就需要转换成大写,以适应医学使用习惯。
本发明的实施例设置了字符串处理单元和大小写转换单元,可以对结构化数据中涉及到需要进行字符串转换或者大小写转化的数据进行相应的转换,比如结构化数据中涉及到的参数为2.15cm,为了满足医学使用习惯,我们需要转换成为以mm为单位的长度计量,故系统输出的自然语言报告则直接输出21.5mm,使得系统更加人性化,方便了医生使用。
实施例四
图5示出了根据本发明实施例四的将结构化报告生成自然语言报告的系统结构示意图;如图5所示,数据处理模块20还包括分割单元208,用于根据自然语言数据的语义,在每个自然语言数据之间设置相应的标点符号。
下面以一个例子来具体说明本实施例:
图6示出了根据本发明实施例四的将结构化报告生成自然语言报告的系统的病灶列表示意图,如图6所示,此病灶列表示出了横结肠-降结肠的相关结构化数据;
图7示出了根据本发明实施例四的将结构化报告生成自然语言报告的系统的病灶列表示意图,如图7所示,此病灶列表示出了中部回肠-上部回肠的相关结构化数据。
图6的横结肠-降结肠的相关结构化数据以及图7的中部回肠-上部回肠的相关结构化数据转换成自然语言数据的实现过程为:
定义变量Var(部位名称)
为如下逻辑为:
@replace(Var(部位值),“-”,“、”)可见病变
图6结构化数据输出为:“横结肠、降结肠可见病变”
图7结构化数据输出为:“中部回肠、上部回肠可见病变”
定义变量Var(肠管)
为如下逻辑为:
图6结构化数据输出为:“,肠管长度1.2cm”
图7结构化数据输出为:“”
定义变量Var(分布)
为如下逻辑为:
图6结构化数据输出为:“分布呈局限性,肠管长度1.2cm”
图7结构化数据输出为:“分布呈弥漫性”
定义变量Var(回盲部)
为如下逻辑为:
图6结构化数据输出为:“回盲部可见受累”
图7结构化数据输出为:“回盲部未见明确受累”
图6、图7合成模块的处理流程为:
自定义函数Fun_add()
输入:无限文字段
输出:使用逗号连接文字段,为空的不连接
定义变量Var(行总内容)
为如下逻辑为:
Fun_add(“Var(部位名称)”,“Var(分布)”,“Var(回盲部)”,“。”)
图6自然语言报告输出为:“横结肠、降结肠可见病变分布呈局限性,肠管为1.2cm,回盲部可见受累。”
图7自然语言报告输出为:“中部回肠、上部回肠可见病变分布呈弥漫性,回盲部未见明确受累。”
图6和图7自然语言报告的合并输出为:
定义变量Var(总内容)
最后输出为:“横结肠、降结肠可见病变分布呈局限性,肠管为1.2cm,回盲部可见受累。中部回肠、上部回肠可见病变分布呈弥漫性,回盲部未见明确受累。”
再如:图8示出了根据本发明实施例四的将结构化报告生成自然语言报告的系统中神经血管束的相关结构化数据示意图,如图8所示,数据处理模块20的处理流程为:
该结构化数据的输出则为:“右侧神经血管束受累。”
本发明的实施例设置了分割单元,可以根据自然语言数据的语义,在每个自然语言数据之间设置相应的标点符号,使得更加符合自然语言的阅读规则。
实施例五
图9示出了根据本发明实施例五的将结构化报告生成自然语言报告的方法流程图,如图9所示,该方法包括以下步骤:
步骤S501,获取模块提取病灶列表中的结构化数据,并将结构化数据发送给数据处理模块;
例如,病灶参数可以为:神经血管束受累、有、右侧;也可以为横结肠-降结肠、分布、局限性、肠管长度12.cm等等各种病灶参数;
步骤S502,数据处理模块基于所述病灶参数的属性,对结构化数据进行数据处理,并将处理后的结构化数据根据语言规则进行重新组合,转换成完整通顺的自然语言数据;
步骤S503,合成模块基于病灶列表中的内容顺序,将自然语言数据进行排序整合,生成自然语言报告;
步骤S504,显示模块在用户对结构化报告编辑完成时,自动将自然语言报告显示到客户端。
针对数据处理模块对应的脚本语言为如下程序逻辑:
(1)变量定义
所有界面中的元素均自动定义为变量,脚本语言可以获取及修改其值,亦可直接定义
新变量。
脚本语法:
Var(变量名称)
(2)分支判断规则
脚本语法:
(3)循环执行规则
脚本语法:
针对合成模块对应的脚本语言为如下程序逻辑:
自定义函数及过程,由用户自行扩展的函数
脚本语法:
Fun_函数名(input)
Begin
自定义脚本内容
Output()
End。
例:定义Fun_words(input)
输入:胆囊、肾脏
输出:胆囊和肾脏
输入:肝脏、NULL、胆囊、肾脏
输出:肝脏、胆囊及肾脏。
其中,基于病灶参数的属性,对所述结构化数据进行数据处理,包括:当病灶参数的属性为数值时,数据处理模块中的计算单元根据数值自动计算出该部位病灶的大小。
比如,根据测量的相关数值可以自动计算出体积值、面积值、容积、指数、密度、范围等等。
针对计算单元对应的脚本语言为如下程序逻辑:
脚本语法:
@Computer(计算公式,附加参数)
例如:
输入:(3*3)+8
输出:17
图10示出了根据本发明实施例五的将结构化报告生成自然语言报告的方法中前列腺经线的相关结构化数据示意图,如图10所示,计算单元的计算流程为:
根据函数公式
输入:@Computer(Var(RL值)*Var(AP值)*Var(SI值),”0.2f”)
输出:1.97
该结构化数据输出的自然语言数据则为:“前列腺径线体积为1.97cm3。”
其中,基于病灶参数的属性,对结构化数据进行数据处理,还包括:基于用户的需求,数据处理模块中的字符串处理单元对结构化数据进行字符串转换。
例如,结构化报告数据为2.15cm,为了满足医学使用习惯,我们需要把cm转换成mm的单位,字符串处理单元将结构化数据2.15cm分解为2.15和cm,然后根据运算规则2.15*10=21.5,再将cm转换成mm,即最后的输出自然语言数据为21.5mm。
其中,基于病灶参数的属性,对结构化数据进行数据处理,还包括:基于用户的需求,数据处理模块中的大小写转换单元对结构化数据进行大小写的转换。
例如,结构化数据中会时常涉及到患者性别的,医生填写的如果是M/F/m/F/,若是需要大写的M/F就需要大小写转换单元来对该小写数据进行大写的转换。
再如,还有一些英文缩写的内容,比如BI-RADS(一种医学的分支名称)有的医生可能用了小写,我们就需要转换成大写,以适应医学使用习惯。
其中,该方法还包括:数据处理模块中的分割单元根据自然语言数据的语义,在每个自然语言数据之间设置相应的标点符号。
下面以一个例子来具体说明本实施例:
图11示出了根据本发明实施例五的将结构化报告生成自然语言报告的方法的病灶列表示意图,如图11所示,此病灶列表示出了横结肠-降结肠的相关结构化数据;
图12示出了根据本发明实施例五的将结构化报告生成自然语言报告的方法的病灶列表示意图,如图12所示,此病灶列表示出了中部回肠-上部回肠的相关结构化数据。
图11的横结肠-降结肠的相关结构化数据以及图12的中部回肠-上部回肠的相关结构化数据转换成自然语言数据的实现过程为:
定义变量Var(部位名称)
为如下逻辑为:
@replace(Var(部位值),“-”,“、”)可见病变
图11结构化数据输出为:“横结肠、降结肠可见病变”
图12结构化数据输出为:“中部回肠、上部回肠可见病变”
定义变量Var(肠管)
为如下逻辑为:
图11结构化数据输出为:“,肠管长度1.2cm”
图12结构化数据输出为:“”
定义变量Var(分布)
为如下逻辑为:
图11结构化数据输出为:“分布呈局限性,肠管长度1.2cm”
图12结构化数据输出为:“分布呈弥漫性”
定义变量Var(回盲部)
为如下逻辑为:
图11结构化数据输出为:“回盲部可见受累”
图12结构化数据输出为:“回盲部未见明确受累”
图11、图12合成模块的处理流程为:
自定义函数Fun_add()
输入:无限文字段
输出:使用逗号连接文字段,为空的不连接
定义变量Var(行总内容)
为如下逻辑为:
Fun_add(“Var(部位名称)”,“Var(分布)”,“Var(回盲部)”,“。”)
图11自然语言报告输出为:“横结肠、降结肠可见病变分布呈局限性,肠管为1.2cm,回盲部可见受累。”
图12自然语言报告输出为:“中部回肠、上部回肠可见病变分布呈弥漫性,回盲部未见明确受累。”
图11和图12自然语言报告的合并输出为:
最后输出为:“横结肠、降结肠可见病变分布呈局限性,肠管为1.2cm,回盲部可见受累。中部回肠、上部回肠可见病变分布呈弥漫性,回盲部未见明确受累。”
再如:
图13示出了根据本发明实施例五的将结构化报告生成自然语言报告的方法中神经血管束的相关结构化数据示意图,如图13所示,数据处理模块的处理流程为:
该结构化数据的输出则为:“右侧神经血管束受累。”
本发明的实施例中,医生在书写结构化报告时,可以将结构化报告中的结构化数据进行相应的处理,并将处理后的结构化数据根据语言规则进行重新组合,转换成完整通顺的自然语言数据,并将自然语言数据进行排序整合,生成自然语言报告。使得医生既能使用结构化报告系统也能按照自然语言的规则形成自然语言报告,完成通顺的影像表现和诊断等内容,使报告流程顺利完成,省去了医生重新写报告的时间,减少了医生的工作量,提高了工作效率;同时,结构化报告数据也可以保留,作为日后医疗诊断的大数据统计查询分析;计算单元,对结构化数据中涉及到数值的参数时,可以自动将各个数值进行计算,将相应的计算结果显示到自然语言数据中,使得医生看到自然语言报告后一目了然,很迅速地捕捉到重要数据,免得医生拿到数值后再计算相应的结果,来判断该部位病灶的大小及严重性,提高了医生的阅读效率;字符串处理单元和大小写转换单元,可以对结构化数据中涉及到需要进行字符串转换或者大小写转化的数据进行相应的转换,比如结构化数据中涉及到的参数为2.15cm,为了满足医学使用习惯,我们需要转换成为以mm为单位的长度计量,故系统输出的自然语言报告则直接输出21.5mm,使得系统更加人性化,方便了医生使用;分割单元可以根据自然语言数据的语义,在每个自然语言数据之间设置相应的标点符号,使得更加符合自然语言的阅读规则。
从以上描述中,可以看出,本发明的上述实施例实现了如下技术效果:本发明的实施例中,设置了数据处理模块和合成模块,医生在书写结构化报告时,可以将结构化报告中的结构化数据进行相应的处理,并将处理后的结构化数据根据语言规则进行重新组合,转换成完整通顺的自然语言数据,并将自然语言数据进行排序整合,生成自然语言报告。使得医生既能使用结构化报告系统也能按照自然语言的规则形成自然语言报告,完成通顺的影像表现和诊断等内容,使报告流程顺利完成,省去了医生重新写报告的时间,减少了医生的工作量,提高了工作效率;同时,结构化报告数据也可以保留,作为日后医疗诊断的大数据统计查询分析;由于设置了计算单元,对结构化数据中涉及到数值的参数时,可以自动将各个数值进行计算,将相应的计算结果显示到自然语言数据中,使得医生看到自然语言报告后一目了然,很迅速地捕捉到重要数据,免得医生拿到数值后再计算相应的结果,来判断该部位病灶的大小及严重性,提高了医生的阅读效率;由于系统中设置了字符串处理单元和大小写转换单元,可以对结构化数据中涉及到需要进行字符串转换或者大小写转化的数据进行相应的转换,比如结构化数据中涉及到的参数为2.15cm,为了满足医学使用习惯,我们需要转换成为以mm为单位的长度计量,故系统输出的自然语言报告则直接输出21.5mm,使得系统更加人性化,方便了医生使用;由于系统中设置了分割单元可以根据自然语言数据的语义,在每个自然语言数据之间设置相应的标点符号,使得更加符合自然语言的阅读规则。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。