本申请涉及处方推荐
技术领域:
,尤其涉及一种处方推荐方法和装置。
背景技术:
:目前的医疗系统已经实现电子信息化,患者的处方、病历等均通过计算机进行处理。由于药品种类繁多,医生在开处方时需花费一定的时间输入所需处方项,使得诊疗时间增长。为了解决该问题,现有技术中通过处方药之间的关联性进行推荐,通过对开具处方药品编辑时进行优化推荐,提高了医生开处方时的高效性。但是现有的处方推荐方法没有考虑处方数据的时效性,使得处方推荐结果准确性不高的问题。技术实现要素:本申请提供了一种处方推荐方法和装置,用于解决现有的处方推荐方法未考虑处方数据的时效性,使得处方推荐结果准确性不高的问题。有鉴于此,本申请第一方面提供了一种处方推荐方法,包括:建立处方项开单记录的处方数据库,所述处方数据库包括若干个事务,所述事务由处方项的集合、处方号和标识符构成;计算所述处方数据库中的各所述处方项的生存频数,所述生存频数基于所述处方项的创立时间、所述处方项的生存周期以及当前时间计算得到;删除小于或等于0的所述生存频数对应的所述处方项,得到新的处方数据库;根据tfp-growth算法对所述新的处方数据库中的所述处方项进行关联分析,生成处方关联表;将所述处方关联表反馈至处方系统,使得所述处方系统根据所述处方关联表进行处方推荐。优选地,所述生存频数的计算公式为:其中,lcount为所述生成频数,tp为所述处方项的创立时间,tn为当前时间,tc为所述处方项的生存周期,a的取值为0或1。优选地,所述根据tfp-growth算法对所述新的处方数据库中的所述处方项进行关联分析,生成处方关联表,包括:扫描所述新的处方数据库,统计所述新的处方数据库中的所有所述事务中的所述处方项的频数,生成原始头表h1;删除所述原始头表h1中小于预置最小支持频数的所述频数对应的所述处方项,并在所述原始头表h1中添加首同义节点域和尾指针,生成头表h2;删除所述事务中不属于所述头表h2的所述处方项,并根据所述头表h2中的所述频数对所述事务中的各所述处方项进行降序排序,生成处方表;基于所述处方表中的所述事务构建fp-tree,并对所述头表h2进行更新;从更新后的所述头表h2中的最后一个所述处方项向前提取频繁项集和频数,生成所述处方关联表。优选地,所述基于所述处方表中的所述事务构建fp-tree,包括:创建根节点;每次从所述处方表中读入一个所述事务,创建标记为所述事务的所述处方项的子节点,形成所述根节点到处方项子节点的路径,直至所述处方表中的每个所述事务都映射到fp-tree的一条路径。优选地,所述对所述头表h2进行更新,包括:当所述事务的所述处方项对应的所述头表h2中的所述首同义节点域和所述尾指针的值均为空时,将所述处方项对应的所述头表h2中的所述首同义节点域和所述尾指针的值分别更新为新建的所述处方项子节点的创建顺序值;当所述事务的所述处方项对应的所述头表h2中的所述首同义节点域和所述尾指针的值均为非空时,根据所述头表h2中的所述尾指针的值跳到与所述尾指针对应的所述处方项同名的最后一个处方项子节点,将所述处方项对应的所述头表h2中的所述尾指针的值更新为新建的所述处方项子节点的创建顺序值。优选地,所述删除所述原始头表h1中小于预置最小支持频数的所述频数对应的所述处方项,并在所述原始头表h1中添加首同义节点域和尾指针,生成头表h2,之前还包括:根据所述频数对所述原始头表h1中的所述处方项进行降序排序。本申请第二方面提供了一种处方推荐装置,包括:建立模块,用于建立处方项开单记录的处方数据库,所述处方数据库包括若干个事务,所述事务由处方项的集合、处方号和标识符构成;计算模块,用于计算所述处方数据库中的各所述处方项的生存频数,所述生存频数基于所述处方项的创立时间、所述处方项的生存周期以及当前时间计算得到;删除模块,用于删除小于或等于0的所述生存频数对应的所述处方项,得到新的处方数据库;关联分析模块,用于根据tfp-growth算法对所述新的处方数据库中的所述处方项进行关联分析,生成处方关联表;推荐模块,用于将所述处方关联表反馈至处方系统,使得所述处方系统根据所述处方关联表进行处方推荐。优选地,所述关联分析模块包括:统计子模块,用于扫描所述新的处方数据库,统计所述新的处方数据库中的所有所述事务中的所述处方项的频数,生成原始头表h1;第一删除子模块,用于删除所述原始头表h1中小于预置最小支持频数的所述频数对应的所述处方项,并在所述原始头表h1中添加首同义节点域和尾指针,生成头表h2;第二删除子模块,用于删除所述事务中不属于所述头表h2的所述处方项,并根据所述头表h2中的所述频数对所述事务中的各所述处方项进行降序排序,生成处方表;构建子模块,用于基于所述处方表中的所述事务构建fp-tree,并对所述头表h2进行更新;生成子模块,用于从更新后的所述头表h2中的最后一个所述处方项向前提取频繁项集和频数,生成所述处方关联表。优选地,所述构建子模块包括:第一创建子模块,用于创建根节点;第二创建子模块,用于每次从所述处方表中读入一个所述事务,创建标记为所述事务的所述处方项的子节点,形成所述根节点到处方项子节点的路径,直至所述处方表中的每个所述事务都映射到fp-tree的一条路径。优选地,所述构建子模块,还包括:第一更新子模块,用于当所述事务的所述处方项对应的所述头表h2中的所述首同义节点域和所述尾指针的值均为空时,将所述处方项对应的所述头表h2中的所述首同义节点域和所述尾指针的值分别更新为新建的所述处方项子节点的创建顺序值;第二更新子模块,用于当所述事务的所述处方项对应的所述头表h2中的所述首同义节点域和所述尾指针的值均为非空时,根据所述头表h2中的所述尾指针的值跳到与所述尾指针对应的所述处方项同名的最后一个处方项子节点,将所述处方项对应的所述头表h2中的所述尾指针的值更新为新建的所述处方项子节点的创建顺序值。从以上技术方案可以看出,本申请具有以下优点:本申请提供了一种处方推荐方法,包括:建立处方项开单记录的处方数据库,处方数据库包括若干个事务,事务由处方项的集合、处方号和标识符构成;计算处方数据库中的各处方项的生存频数,生存频数基于处方项的创立时间、处方项的生存周期以及当前时间计算得到;删除小于或等于0的生存频数对应的处方项,得到新的处方数据库;根据tfp-growth算法对新的处方数据库中的处方项进行关联分析,生成处方关联表;将处方关联表反馈至处方系统,使得处方系统根据处方关联表进行处方推荐。本申请中的处方项推荐方法,通过对建立的处方数据库中的处方项进行生存频数计算,删除小于或等于0的生存频数对应的处方项,降低过时处方数据的比重,从而保持处方数据的时效性;通过tfp-growth算法对新的处方数据库中的处方项进行关联分析,挖掘各处方项之间的关联性,将生成的处方关联表反馈给处方系统,使得处方系统根据处方关联表进行处方推荐,通过tfp-growth算法配合生成频数对处方数据进行适应性调整和推荐,在保证处方数据时效性的基础上进行处方项间的关联性分析,提高了处方推荐结果的准确性,从而解决了现有的处方推荐方法未考虑处方数据的时效性,使得处方推荐结果准确性不高的问题。附图说明图1为本申请提供的一种处方推荐方法的一个实施例的流程示意图;图2为本申请提供的一种处方推荐方法的另一个实施例的流程示意图;图3为本申请提供的一种处方推荐装置的一个实施例的结构示意图;图4为本申请提供的添加第一个事务后的fp-tree的结构示意图;图5为本申请提供的添加第三个事务后的fp-tree的结构示意图;图6为本申请提供的添加第八个事务的第一项处方项后的fp-tree的结构示意图;图7为本申请提供的添加第八个事务后的fp-tree的结构示意图。具体实施方式为了使本
技术领域:
的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。为了便于理解,请参阅图1,本申请提供的一种处方推荐方法的一个实施例,包括:步骤101、建立处方项开单记录的处方数据库。需要说明的是,处方数据库包括若干个事务,事务由处方项的集合、处方号和标识符构成,其中,标识符为患者编号tid,处方项包括药品处方项和操作处方项(如理疗等非药品处方项),每个处方项有对应的患者编号tid和处方号,分别存储于不同的数据去d1、d2,在建立处方数据库时,同时记录各处方项的创立时间。步骤102、计算处方数据库中的各处方项的生存频数。需要说明的是,由于医学是不断发展的,随之而来的是新的药物、新的治疗手段,因此,处方项会随着时间而产生变化,如出现疗效更好的药替代旧药,或发现某药有副作用需禁用等,如果旧处方数据一直存在处方数据库中,新增处方数据量随着时间推移将变得越来越少,从中挖掘的信息将会是过时信息,因此,需有机制地为处方数据库保持时效性,本申请实施例中的处方推荐方法使用生存频数进行数据处理,生存频数基于处方项的创立时间、处方项的生存周期以及当前时间计算得到。步骤103、删除小于或等于0的生存频数对应的处方项,得到新的处方数据库。需要说明的是,生存频数越小,对应的处方项随着时间推移,重要性越低,删除小于或等于0的生存频数对应的处方项,得到新的处方数据库,以保持处方数据的时效性。步骤104、根据tfp-growth算法对新的处方数据库中的处方项进行关联分析,生成处方关联表。需要说明的是,通过tfp-growth算法对新的处方数据库中的处方项进行关联分析,挖掘各处方项之间的关联性,其中,生成的处方关联表中包括频繁项集和频数。步骤105、将处方关联表反馈至处方系统,使得处方系统根据处方关联表进行处方推荐。需要说明的是,当处方系统接收接收到处方关联表后,提取处方关联表中各处方项之间的关联性,根据各处方项之间的关联强弱进行处方项推荐。本申请实施例中的处方项推荐方法,通过对建立的处方数据库中的处方项进行生存频数计算,删除小于或等于0的生存频数对应的处方项,降低过时处方数据的比重,从而保持处方数据的时效性;通过tfp-growth算法对新的处方数据库中的处方项进行关联分析,挖掘各处方项之间的关联性,将生成的处方关联表反馈给处方系统,使得处方系统根据处方关联表进行处方推荐,通过tfp-growth算法配合生成频数对处方数据进行适应性调整和推荐,在保证处方数据时效性的基础上进行处方项间的关联性分析,提高了处方推荐结果的准确性,从而解决了现有的处方推荐方法未考虑处方数据的时效性,使得处方推荐结果准确性不高的问题。为了便于理解,请参阅图2,本申请提供的一种处方推荐方法的另一个实施例,包括:步骤201、建立处方项开单记录的处方数据库。需要说明的是,处方数据库包括若干个事务,事务由处方项的集合、处方号和标识符构成,其中,标识符为患者编号tid,处方项包括药品处方项和操作处方项(如理疗等非药品处方项),每个处方项有对应的患者编号tid和处方号,分别存储于不同的数据去d1、d2,在建立处方数据库时,同时记录各处方项的创立时间以及记录该处方项是否可用。步骤202、计算处方数据库中的各处方项的生存频数。需要说明的是,由于医学是不断发展的,随之而来的是新的药物、新的治疗手段,因此,处方项会随着时间而产生变化,如出现疗效更好的药替代旧药,或发现某药有副作用需禁用等,如果旧处方数据一直存在处方数据库中,新增处方数据量随着时间推移将变得越来越少,从中挖掘的信息将会是过时信息,因此,需有机制地为处方数据库保持时效性,本申请实施例中的处方推荐方法使用生存频数进行数据处理,其中,生存频数的计算公式为:其中,lcount为生成频数,tp为处方项的创立时间,tn为当前时间,tc为处方项的生存周期,可以根据实际情况进行设置,默认值为365,a的取值为0或1,a为0时,说明该处方项不可用,a为1时,说明该处方项可用,一般情况下,a为1。当前时间tn随着时间增大,时间越久,生存频数越小,对应的处方项随着时间推移,重要性越低。步骤203、删除小于或等于0的生存频数对应的处方项,得到新的处方数据库。需要说明的是,当某处方项存在巨大副作用时需要紧急停用,将a设为0,此时生存频数为0;当处方项存在的时间大于或等于生存周期时,生成频数为0或负值,删除小于或等于0的生存频数对应的处方项,从而保证处方数据的时效性,当某事物为空集时,相应地删除该事物,从而得到新的处方数据库。步骤204、扫描新的处方数据库,统计新的处方数据库中的所有事务中的处方项的频数,生成原始头表h1。需要说明的是,由于处方项包括药品处方项和操作处方项,存在同一个患者的同一处方号中既有对应的药品处方项又有操作处方项,可以对同一患者的处方项进行共同挖掘,也可以单独挖掘。进行共同挖掘时,先从数据区d1、d2提取处方数据,依据患者编号tid及处方号将药品处方项t1和操作处方项t2进行信息合并,得到处方项t,处方项t的集合以及处方号、标识符构成事务。扫描一次新的处方数据库,统计新的处方数据库中的所有事务中的处方项的频数,生成原始头表h1,其中原始头表h1中每个处方项对应的有一个频数。步骤205、删除原始头表h1中小于预置最小支持频数的频数对应的处方项,并在原始头表h1中添加首同义节点域和尾指针,生成头表h2。需要说明的是,可以根据频数对原始头表h1中的处方项进行降序排序,对降序排序后的原始头表h1中小于预置最小支持频数的频数对应的处方项进行删除,保留高频处方项,预置最小支持频数可以根据情况进行设置,在原始头表h1中添加首同义节点域first_same和尾指针tail,生成头表h2,头表h2中每个处方项有对应的频数、首同义节点域first_same和尾指针tail。步骤206、删除事务中不属于头表h2的处方项,并根据头表h2中的频数对事务中的各处方项进行降序排序,生成处方表。需要说明的是,对新的处方数据库中的事务进行清洗,删除事务中不属于头表h2的处方项,并根据头表h2中处方项的频数,对各事务中的各处方项进行降序排序,生成处方表,处方表中的每个处方项都有对应的处方号和标识符。步骤207、基于处方表中的事务构建fp-tree,并对头表h2进行更新。需要说明的是,基于处方表中的事务构建fp-tree时,首先创建一个处方项名为null的根节点root,然后插入第一个事务,此时fp-tree为空树,每次从处方表中读入一个事务,逐个插入到fp-tree,创建标记为事务的处方项的子节点,形成根节点到处方项子节点的路径,直至处方表中的每个事务都映射到fp-tree的一条路径,具体为:在插入第一个事务时,第一个事务的第一个处方项作为根节点的第一个处方项子节点而新建节点,即新建一个处方项子节点,处方项子节点记录处方项名,处方项子节点频数域的值加1,并在头表h2中寻找该处方项,事务的处方项对应的头表h2中的首同义节点域first_same和尾指针tail的值均为空,将该处方项对应的头表h2中的首同义节点域first_same和尾指针tail的值分别更新为新建的处方项子节点的指针,即新建的处方项子节点的创建顺序值,该事务剩下的处方项作为前一项处方项的子节点而新建节点,后续的步骤跟第一个处方项的处理一致,在此不再进行赘述,直至第一个事务的所有处方项都添加到fp-tree中,继续添加第二个事务,第二个事务的处理可以按以下三种情况分别进行处理:1)新增的事务的第一个处方项与根节点root现有的子节点的处方项名均不相同,此时,按照第一次添加事务的方式添加新增的事务,当新增的事务的处方项对应的头表h2中的首同义节点域和尾指针的值均为空时,将处方项对应的头表h2中的首同义节点域和尾指针的值分别更新为新建的处方项子节点的创建顺序值;当事务的处方项对应的头表h2中的首同义节点域和尾指针的值均为非空时,根据头表h2中的尾指针的值跳到与尾指针对应的处方项同名的最后一个处方项子节点,将处方项对应的头表h2中的尾指针的值更新为新建的处方项子节点的创建顺序值。2)新增的事务前部分处方项与现有的fp-tree的从根节点出发的某路径重合,余下的处方项不同,此时,先将重合路径上的处方项子节点频数加1,该新增的事务余下的不重合的处方项以重合路径最后一个处方项子节点为根节点进行添加处方项子节点操作,并相应的更新头表h2,具体更新规则跟前述步骤1)中的一致。3)新增的事务所有的处方项与现有的fp-tree的从根节点root出发的某路径重合,此时只需要将重合路径上的处方项子节点频数加1。后续的事务与第二个事务的处理过程一致,在此不再进行赘述。步骤208、从更新后的头表h2中的最后一个处方项向前提取频繁项集和频数,生成处方关联表。需要说明的是,根据更新后的头表h2和fp-tree,从更新后的头表h2中的最后一个处方项向前提取频繁项集和频数,生成处方关联表。步骤209、将处方关联表反馈至处方系统,使得处方系统根据处方关联表进行处方推荐。需要说明的是,当处方系统接收接收到处方关联表后,提取处方关联表中各处方项之间的关联性,根据各处方项之间的关联强弱进行处方项推荐,当医生输入第一个处方项时,处方系统根据各处方项之间的关联强弱进行处方项推荐,减少了医生输入处方项的时间,提高了诊疗效率。为了便于理解,本申请提供一种处方推荐方法的一个具体应用例,包括:在创建处方数据库后计算处方数据库中的各处方项的生存频数,在得到各处方项的生存频数后,删除小于或等于0的生存频数对应的处方项,得到新的处方数据库,本申请实施例优选采用共同挖掘,设药品处方项t1和操作处方项t2分别如表1、表2所示,由于要进行的是共同挖掘,需要先将t1、t2进行信息合并,形成如表3所示的合并处方项t。表3合并处方项统计所有事务中的处方项的频数,可以根据频数对原始头表h1中的处方项进行降序排序,生成如表4所示的原始头表h1。表4原始头表h1设置最小支持频数,本申请实施例中的最小支持频数为2,删除原始头表h1中小于预置最小支持频数的频数对应的处方项,保留高频处方项a、a、b、c和d,并在原始头表h1中添加首同义节点域和尾指针,生成如表5所示的头表h2。表5头表h2处方项频数first_sametaila6b4a4d2c2对事务进行清洗,保留头表h2中每个事务,删除不属于头表h2的处方项,并根据头表h2中的频数对事务中的各处方项进行降序排序,生成如表6所示的处方表,由于处方项a的频数最高,因此8个事务中有处方项a的事务,排在第一位的均是处方项a。表6处方表得到处方表后,开始构建fp-tree,创建处方项名为null的根节点,如图4所示,添加第一个事务<a,b>,第一个事务直接添加并更新头表h2中处方项a的首同义节点域first_same和尾指针tail,因为在添加第一个事务时,第一个事务的各处方项对应的头表h2中的首同义节点域first_same和尾指针tail均没有值,即为空,此时,更新头表h2中处方项a的首同义节点域first_same和尾指针tail分别为新建的子节点a的创建顺序值1,更新头表h2中处方项b的首同义节点域first_same和尾指针tail分别为新建的子节点a的创建顺序值2,因此,更新头表h2中处方项a的首同义节点域first_same和尾指针tail分别为1,1,更新头表h2中处方项a的首同义节点域first_same和尾指针tail分别为2,2,其中,子节点括号内的数字为子节点的创建顺序值,以此作为每个节点的标记;添加第二个事务<a,b>时,直接将子节点a、子节点b的频数加一;如图5所示添加第三事务<a,b,a>时,由于事务中前部分<a,b>与已有的fp-tree的一条路径重合,只需要将fp-tree中对应的子节点a、子节点b的频数加1,由于<a>不重合,以前面的子节点b为根节点,新建子节点,并更新头表h2中处方项a的首同义节点域first_same和尾指针tail分别为3,3,以此类推,继续添加余下的事务,当添加第8个事务<b,a,d>时,直接在根节点null下新建子节点,添加子节点b后,fp-tree如图6所示,此时的头表h2如表7所示,在添加第8事务<a>子节点时,根据尾指针tail的值6,直接可以找到最后一个与a同一处方项名的子节点,即a:1(6),将新建的子节点a与a:1(6)建立连接,然后更新新建的子节点a对应的头表h2中处方项a对应的tail的值为新建的子节点a的创建顺序值9,将原来的子节点a的tail值6更新为9,若没有tail,需要从first_same逐步查找,需要进行3次寻找,即a:1(3)→a:1(4)→a:1(6),才能找到最后一个与a同一处方项名的子节点,运行效率低,查找速度慢。添加完第8个事务后的fp-tree如图7所示,对应的更新的头表h2如表8所示。表7添加第8个事务a之前的头表h2处方项频数first_sametaila611b428a436d277c255表8添加第8个事务后的头表h2处方项频数first_sametaila611b428a439d2710c255从如表8所示的头表h2的最后一项往前开始挖掘,从处方项c的首同义节点域first_same出发,提取处方项c的模式事务<a:2>,因为满足最小支持频数,继续挖掘,得到频繁项集<a,c>,频数为2,当处方项c挖掘完后,从最后一项处方项c的前一项处方项d进行挖掘,得到频繁项集<a,d>,频数为2,以此类推,直至所有的处方项挖掘完成,得到如表9所示的处方关联表。表9处方关联表序号频繁项集频数1<a,b>32<a,c>23<a,a>24<b,a>25<a,d>2将得到的如表9所示的处方关联表反馈至处方系统,当医生输入处方项b时,处方系统提示显示第一位处方项为a,第二位处方项为a,以供医生选择,避免医生重新查找,减少了诊疗时间,每次推荐的处方项的数量可以根据实际情况进行设置,其中,还可以计算频繁项集的置信度,使得处方系统根据各频繁项集的置信度进行处方项推荐,计算置信度属于现有技术,在此不再对置信度的具体计算过程进行赘述。本申请实施例中通过tfp-growth算法进行关联规则挖掘,通过生存频数保证处方数据库的时效性及准确性,快速得出个处方项间关联规则并进行反馈,在医生开处方时自动推荐处方项,相比于现有的全手工输入法,能有效提高医生的诊疗效率,并且在保证处方数据时效性的基础上进行处方项间的关联性分析,提高了处方推荐结果的准确性,从而解决了现有的处方推荐方法未考虑处方数据的时效性,使得处方推荐结果准确性不高的问题。为了便于理解,请参阅图3,本申请提供的一种处方推荐装置的一个实施例,包括:建立模块301,用于建立处方项开单记录的处方数据库,处方数据库包括若干个事务,事务由处方项的集合、处方号和标识符构成。计算模块302,用于计算处方数据库中的各处方项的生存频数,生存频数基于处方项的创立时间、处方项的生存周期以及当前时间计算得到。删除模块303,用于删除小于或等于0的生存频数对应的处方项,得到新的处方数据库。关联分析模块304,用于根据tfp-growth算法对新的处方数据库中的处方项进行关联分析,生成处方关联表。推荐模块305,用于将处方关联表反馈至处方系统,使得处方系统根据处方关联表进行处方推荐。进一步地,关联分析模块304包括:统计子模块3041,用于扫描新的处方数据库,统计新的处方数据库中的所有事务中的处方项的频数,生成原始头表h1。第一删除子模块3042,用于删除原始头表h1中小于预置最小支持频数的频数对应的处方项,并在原始头表h1中添加首同义节点域和尾指针,生成头表h2。第二删除子模块3043,用于删除事务中不属于头表h2的处方项,并根据头表h2中的频数对事务中的各处方项进行降序排序,生成处方表。构建子模块3044,用于基于处方表中的事务构建fp-tree,并对头表h2进行更新。生成子模块3045,用于从更新后的头表h2中的最后一个处方项向前提取频繁项集和频数,生成处方关联表。进一步地,构建子模块3044包括:第一创建子模块30441,用于创建根节点。第二创建子模块30442,用于每次从处方表中读入一个事务,创建标记为事务的处方项的子节点,形成根节点到处方项子节点的路径,直至处方表中的每个事务都映射到fp-tree的一条路径。进一步地,构建子模块3044,还包括:第一更新子模块30443,用于当事务的处方项对应的头表h2中的首同义节点域和尾指针的值均为空时,将处方项对应的头表h2中的首同义节点域和尾指针分别更新为新建的处方项子节点的创建顺序值。第二更新子模块30444,用于当事务的处方项对应的头表h2中的首同义节点域和尾指针的值均为非空时,根据头表h2中的尾指针的值跳到与尾指针对应的处方项同名的最后一个处方项子节点,将处方项对应的头表h2中的尾指针更新为新建的处方项子节点的创建顺序值。在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以通过一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(英文全称:read-onlymemory,英文缩写:rom)、随机存取存储器(英文全称:randomaccessmemory,英文缩写:ram)、磁碟或者光盘等各种可以存储程序代码的介质。以上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。当前第1页1 2 3 
技术特征:1.一种处方推荐方法,其特征在于,包括:
建立处方项开单记录的处方数据库,所述处方数据库包括若干个事务,所述事务由处方项的集合、处方号和标识符构成;
计算所述处方数据库中的各所述处方项的生存频数,所述生存频数基于所述处方项的创立时间、所述处方项的生存周期以及当前时间计算得到;
删除小于或等于0的所述生存频数对应的所述处方项,得到新的处方数据库;
根据tfp-growth算法对所述新的处方数据库中的所述处方项进行关联分析,生成处方关联表;
将所述处方关联表反馈至处方系统,使得所述处方系统根据所述处方关联表进行处方推荐。
2.根据权利要求1所述的处方推荐方法,其特征在于,所述生存频数的计算公式为:
其中,lcount为所述生成频数,tp为所述处方项的创立时间,tn为当前时间,tc为所述处方项的生存周期,a的取值为0或1。
3.根据权利要求1所述的处方推荐方法,其特征在于,所述根据tfp-growth算法对所述新的处方数据库中的所述处方项进行关联分析,生成处方关联表,包括:
扫描所述新的处方数据库,统计所述新的处方数据库中的所有所述事务中的所述处方项的频数,生成原始头表h1;
删除所述原始头表h1中小于预置最小支持频数的所述频数对应的所述处方项,并在所述原始头表h1中添加首同义节点域和尾指针,生成头表h2;
删除所述事务中不属于所述头表h2的所述处方项,并根据所述头表h2中的所述频数对所述事务中的各所述处方项进行降序排序,生成处方表;
基于所述处方表中的所述事务构建fp-tree,并对所述头表h2进行更新;
从更新后的所述头表h2中的最后一个所述处方项向前提取频繁项集和频数,生成所述处方关联表。
4.根据权利要求3所述的处方推荐方法,其特征在于,所述基于所述处方表中的所述事务构建fp-tree,包括:
创建根节点;
每次从所述处方表中读入一个所述事务,创建标记为所述事务的所述处方项的子节点,形成所述根节点到处方项子节点的路径,直至所述处方表中的每个所述事务都映射到fp-tree的一条路径。
5.根据权利要求4所述的处方推荐方法,其特征在于,所述对所述头表h2进行更新,包括:
当所述事务的所述处方项对应的所述头表h2中的所述首同义节点域和所述尾指针的值均为空时,将所述处方项对应的所述头表h2中的所述首同义节点域和所述尾指针的值分别更新为新建的所述处方项子节点的创建顺序值;
当所述事务的所述处方项对应的所述头表h2中的所述首同义节点域和所述尾指针的值均为非空时,根据所述头表h2中的所述尾指针的值跳到与所述尾指针对应的所述处方项同名的最后一个处方项子节点,将所述处方项对应的所述头表h2中的所述尾指针的值更新为新建的所述处方项子节点的创建顺序值。
6.根据权利要求3所述的处方推荐方法,其特征在于,所述删除所述原始头表h1中小于预置最小支持频数的所述频数对应的所述处方项,并在所述原始头表h1中添加首同义节点域和尾指针,生成头表h2,之前还包括:
根据所述频数对所述原始头表h1中的所述处方项进行降序排序。
7.一种处方推荐装置,其特征在于,包括:
建立模块,用于建立处方项开单记录的处方数据库,所述处方数据库包括若干个事务,所述事务由处方项的集合、处方号和标识符构成;
计算模块,用于计算所述处方数据库中的各所述处方项的生存频数,所述生存频数基于所述处方项的创立时间、所述处方项的生存周期以及当前时间计算得到;
删除模块,用于删除小于或等于0的所述生存频数对应的所述处方项,得到新的处方数据库;
关联分析模块,用于根据tfp-growth算法对所述新的处方数据库中的所述处方项进行关联分析,生成处方关联表;
推荐模块,用于将所述处方关联表反馈至处方系统,使得所述处方系统根据所述处方关联表进行处方推荐。
8.根据权利要求7所述的处方推荐装置,其特征在于,所述关联分析模块包括:
统计子模块,用于扫描所述新的处方数据库,统计所述新的处方数据库中的所有所述事务中的所述处方项的频数,生成原始头表h1;
第一删除子模块,用于删除所述原始头表h1中小于预置最小支持频数的所述频数对应的所述处方项,并在所述原始头表h1中添加首同义节点域和尾指针,生成头表h2;
第二删除子模块,用于删除所述事务中不属于所述头表h2的所述处方项,并根据所述头表h2中的所述频数对所述事务中的各所述处方项进行降序排序,生成处方表;
构建子模块,用于基于所述处方表中的所述事务构建fp-tree,并对所述头表h2进行更新;
生成子模块,用于从更新后的所述头表h2中的最后一个所述处方项向前提取频繁项集和频数,生成所述处方关联表。
9.根据权利要求8所述的处方推荐装置,其特征在于,所述构建子模块包括:
第一创建子模块,用于创建根节点;
第二创建子模块,用于每次从所述处方表中读入一个所述事务,创建标记为所述事务的所述处方项的子节点,形成所述根节点到处方项子节点的路径,直至所述处方表中的每个所述事务都映射到fp-tree的一条路径。
10.根据权利要求8所述的处方推荐装置,其特征在于,所述构建子模块,还包括:
第一更新子模块,用于当所述事务的所述处方项对应的所述头表h2中的所述首同义节点域和所述尾指针的值均为空时,将所述处方项对应的所述头表h2中的所述首同义节点域和所述尾指针的值分别更新为新建的所述处方项子节点的创建顺序值;
第二更新子模块,用于当所述事务的所述处方项对应的所述头表h2中的所述首同义节点域和所述尾指针的值均为非空时,根据所述头表h2中的所述尾指针的值跳到与所述尾指针对应的所述处方项同名的最后一个处方项子节点,将所述处方项对应的所述头表h2中的所述尾指针的值更新为新建的所述处方项子节点的创建顺序值。
技术总结本申请公开了一种处方推荐方法和装置,其中方法包括:建立处方项开单记录的处方数据库,处方数据库包括若干个事务,事务由处方项的集合、处方号和标识符构成;计算处方数据库中的各处方项的生存频数,生存频数基于处方项的创立时间、处方项的生存周期以及当前时间计算得到;删除小于或等于0的生存频数对应的处方项,得到新的处方数据库;根据TFP‑growth算法对新的处方数据库中的处方项进行关联分析,生成处方关联表;将处方关联表反馈至处方系统,使得处方系统根据处方关联表进行处方推荐,解决了现有的处方推荐方法未考虑处方数据的时效性,使得处方推荐结果准确性不高的问题。
技术研发人员:马建国;汤永杰
受保护的技术使用者:广东工业大学
技术研发日:2020.01.08
技术公布日:2020.06.09