用于患者人口统计学记录查询的数据敏感过滤的系统以及方法

文档序号:6567594阅读:283来源:国知局
专利名称:用于患者人口统计学记录查询的数据敏感过滤的系统以及方法
技术领域
本发明涉及医疗记录数据库查询的搜索和过滤。
相关技术的讨论 医院信息系统的重要功能性是在某些输入准则的基础上对患者记录执行容错(error-tolerant)搜索的能力。举例来说,医院工作人员经常需要在仅仅姓氏、名字和/或出生日期的基础上来识别患者。
这种搜索的两个必要条件是(1)该搜索应该是容错的,因为与医院数据库中所存储的值相比,搜索准则也许会有差错;并且(2)该搜索应该在指定的时间之内结束,例如1-2秒。在更多的容错需要更长的响应时间的意义上,所述两个必要条件是相互竞争的。例如假设计分(scoring)算法每秒可以针对搜索准则比较10000条记录并且为计分所分配的时间是1秒。那么,为了使响应时间保持在指定的极限之内,系统可以从包含可能数百万条记录的人口统计学数据库中检索高度可能的至多10000条记录。
通常,可以为了更详细的计分而通过设置过滤器来检索适当的记录池,其中该过滤器是由数据库记录所必须满足的预先规定的条件。基本上,假定搜索条件的至少某些部分是正确的并且基于该信息对来自数据库的记录进行检索。在通过姓氏和名字进行搜索的例子中,可以通过假定搜索准则中名字的最初4个字符与/或姓氏的最初5个字符是正确的来设置过滤器。因此,所检索到的池(pool)仅仅由具有名字字段中的最初4个字符和/或姓氏字段中的5个字符作为搜索准则的记录组成。注意两个逻辑连接符与(AND)和或(OR)在所检索的记录数目方面以及在容错方面具有不同的影响。与(AND)连接假定名字的4个字符以及姓氏的5个字符都是正确的,但是要检索的记录的数目比使用或(OR)连接要少得多,然而由于假定仅仅或者名字的4个字符或者是姓氏的5个字符是正确的,所以或(OR)连接更具容错性。
这种方法的缺点在于通过事先固定过滤器位置,该池的大小将根据搜索值的频率而显著变化。举例来说,对于搜索准则“James Smith”来说过滤器将会检索太多的记录,而对于搜索准则“Zbigniew Brzezinski”来说会检索太少的记录。在前者的情况下,需要完成搜索的时间可能超过指定的响应时间。在后者的情况中,如果“Zbig”或者“Brzez”的最初数个字符出现印刷上的差错,那么所预期的“真(true)”记录可能不能包括到池中(因此搜索将要失败)。


发明内容
在此处描述的本发明示范性实施例通常包括方法和系统,用于数据敏感过滤用以从人口统计学数据库中检索高可能性记录来与在搜索患者人口统计学记录中的输入准则进行比较。该过滤器允许最大的容错同时保持响应时间在指定的极限之内。根据本发明实施例的数据敏感过滤器使用取决于搜索值频率的过滤条件。可以预先计算并且当更新数据库之时周期性地(例如每月,每年)重新计算这些频率。例如,在搜索“James Smith”的情况下,过滤器应该知道在数据库中有很多“James Smith”项,并且应该使用更严格的过滤条件或者请求附加信息。在“Zbigniew Brzezinski”的情况下,过滤器应该知道它是生僻的姓名并且放宽过滤条件,例如通过假定仅仅名字中的最初2个字符是正确的(而不是4个)并且仅仅姓氏中的最初3个字符是正确的(而不是5个)。这种过滤器使容错最大化同时保证了响应时间在极限之内。
根据本发明的一个方面,提供了一种用于在患者数据库搜索中数据敏感过滤的方法,包括提供包含一个或多个搜索定位器字段的搜索准则,根据所述搜索准则确定检索公式,其中所述检索公式在所述搜索准则中使容错最大化同时满足预先规定的响应时间要求,从所述数据库中检索所述候选记录,其中如果不能找到检索公式来满足所述响应时间要求,则请求附加搜索准则,通过将搜索准则定位器字段与所检索的相应记录字段相比较来对每条所述候选记录进行计分,确定所述候选记录的所述分数是否超过预先规定的阈值,并且如果所述候选分数确实超过所述阈值,那么响应于所述搜索准则将所述候选记录添加到要返回的记录列表中。
根据本发明的另一个方面,搜索准则包括名字和姓氏,该方法进一步包括编辑与在所述搜索准则中的所述名字相当的姓名的列表。
根据本发明的另一个方面,将搜索准则定位器字段与相应的候选记录字段进行比较包括通过所述定位器字段和所述候选记录字段对的字段比较来完成(perform)字段,用以利用针对直至在所述字段对中预先规定数目的字符为每个字段对所预先规定的字段比较方法来为字段对(field pair)j填入比较结果向量cj的分量,使用下述公式在一个或多个概率的基础上对所述比较结果cj进行计分 其中P0j(cj)和P1j(cj)为概率,所述概率是所述字段对中的匹配字符数目的函数,并且对所有字段j的score(cj)进行求和,其中定位器字段和在所述候选记录中的相应字段都不为空用以计算第一计分。
根据本发明的另一个方面,如果在搜索准则中指定名字和姓氏两者,则交换搜索准则中的所述名字和姓氏,重复通过将交换后的定位器字段与候选记录字段的字段相比较来完成字段的所述步骤,对所述比较结果cj进行计分,并且在所有字段j上对所述分数进行求和以计算第二分数,并且选择所述第一分数以及所述第二分数减去交换损失的最大值。
根据本发明的另一个方面,该方法包括根据以下公式将所述分数转换为0至100的数值范围 transformedScore=(score-minScore)/(maxScore-minScore)%100, 其中 maxScore=∑jmaxScorej,minScore=∑jminScorej, 其中用于产生比较向量的第j个分量的定位器字段在搜索准则中非空,并且其中在cj的所有可能值上,maxScorej=max(score(cj))并且minScorej=mi(score(cj))。
根据本发明的另一个方面,字段的字段比较方法是精确距离匹配、汉明距离、和编辑距离、和具有交换的编辑距离、名字距离、以及姓氏距离中的一个。
根据本发明的另一个方面,该方法包括对于要返回的所述记录列表中的每条候选记录,从所述搜索定位器字段的所述数据库检索最新的完整记录,对于在所述候选记录中具有非空值的每个字段,使在所检索的完整记录中的字段值用在候选记录中的对应值来替换,以及将改变后的完整记录添加到所述数据库。
根据本发明的另一个方面,提供一种用于在患者数据库搜索中数据敏感过滤的方法,包括提供搜索准则用于从包括一个或多个搜索定位器字段的数据库中检索一条或多条记录,确定要从所述数据库中检索的候选记录的最大数目、以及用于检索所述记录的最大响应时间,在所述搜索准则中的多个字符为正确的基础上来确定要检索的多个候选记录,根据所述搜索准则确定检索公式,其中所述检索公式在所述搜索准则中使容错最大化同时满足所述响应时间要求,以及从所述数据库检索所述候选记录,其中如果不能找到检索公式来满足所述响应时间要求,则请求附加的搜索准则。
根据本发明的另一个方面,如果使用所述检索公式可检索的候选记录的数目降到候选记录的最小数目之下,那么减少在所述搜索准则中假定为正确的所述字符的数目。
根据本发明的另一个方面,从数据库值的频率表中来确定要检索的候选记录的最大数目,该数据库值的频率表表示在所述数据库中所包括的搜索准则字段的概率,并且其中将具有比预定阈值高的概率值的字符串存储在存储器中。
根据本发明的另一个方面,该阈值以数据库大小、必要的响应时间、以及所述搜索准则和所述候选记录之间的比较速度为基础。
根据本发明的另一个方面,概率包括在所述数据库中所包括的搜索准则子字段的概率。
根据本发明的另一个方面,该方法包括将所述搜索准则与第一候选记录进行比较并且将所述比较的结果和所述第一候选记录存储在表中,通过搜索所述表来搜索每条后续的候选记录,其中如果没有在所述表中找到所述后续的候选记录,那么将所述后续的候选记录与所述搜索准则进行比较并且将所述比较结果和所述后续的候选记录存储在所述表中。
根据本发明的另一个方面,检索公式包括从所述一个或多个搜索定位器字段所形成的逻辑公式。
根据本发明的另一个方面,如果所述搜索准则仅仅包括一个搜索字段,则将所述检索公式以所述搜索字段的子字符串为基础,并且搜索高频字符串的词典,并且如果没有在所述词典中找到所述搜索子字符串则执行数据库查询。
根据本发明的另一个方面,如果所述搜索准则包括两个以上的搜索字段,则从搜索准则对的合取的析取来形成所述逻辑公式。
根据本发明的另一个方面,如果所述搜索准则包括两个搜索字段,则从整个搜索字段的比较与部分搜索字段的比较的逻辑组合来形成所述逻辑公式。
根据本发明的另一个方面,提供一种计算机可读程序存储装置,有形地包括计算机可执行指令的程序用以执行在患者数据库搜索中数据敏感过滤的方法步骤。



图1是根据本发明实施例的字段比较方法的表。
图2是根据本发明实施例的概率P0j(cj)的示范性值的表。
图3根据本发明实施例的概率P1j(cj)的示范性值的表。
图4是根据本发明实施例的表,该表示出了具有所联合的个人姓名、地址、和电话字段的数据库行。
图5是根据本发明实施例对John Smythe描述示范性候选的表。
图6是根据本发明实施例的表,所述表显示了对于John Smythe所报告的示范性查询结果。
图7是根据本发明实施例的数据敏感检索过滤过程的流程图。
图8是用于实现根据本发明实施例的数据敏感检索过滤过程的示范性计算机系统的框图。

具体实施例方式 在此处描述的本发明示范性实施例通常包括患者人口统计学记录搜索的数据敏感过滤用的系统和方法。因此,尽管可以容易地对发明进行不同的修改以及采用替代形式,但是仍通过例子在图中对其具体实施例进行显示并且在此处进行详细描述。但是,应该理解的是,并不是想将本发明局限于所公开的特定形式,而正好相反,本发明将覆盖所有落入本发明的精神和范围之中的修改、等效、以及替代方案。
某些医疗数据库存储所有字段的历史记录,以便记录检索同样也应该搜索历史记录。根据本发明的实施例,可以将具有历史信息的个人人口统计学记录视为若干记录举例来说,如果有3个姓名、2个地址但是仅仅只有个人的所有其他人口统计学字段的1个值,那么该个人将有6条人口统计学记录。可以假定,存在对给定个人的最新信息进行检索的装置,所述装置应该被用于返回顶部(top)候选的列表。
此外,某些数据库支持对于比如姓名(合法的、别名、冒充的)和地址(住宅、邮寄、帐单)的某些字段具有多重值。表示人口统计学信息的数据结构应该在不同的字段之间有所区别。为了便于检索和计分,根据本发明实施例的算法以对称的方式处理所有的这些变量。以与该字段的历史值相同的方式来处理字段的变量。
此外,可以使用得自于人口统计学记录的值来检索记录用于计分。这些人口统计学记录称为记录链接(record linkage,RL)关键字。举例来说,一个人可以通过将姓氏的最初4个字符与给定姓名的最后4个字符进行连结并且将其存储在数据库中来形成新的字符串,以便随后的人可以使用其来在不计算的情况下找到数据行。根据本发明的实施例,将为相应字段的“最新的(most recent)”值预先计算RL关键字的值。可以将这种预先计算扩展到计算和存储历史值。
根据本发明的实施例,示范性医疗数据库D具有n条记录,每条记录都具有m个字段F1,F2,...,Fm。来自该数据库的示范性检索请求包括基于一个或多个字符串s1,...,sI来对记录进行检索,其中所述一个或多个字符串s1,...,sI可能表示记录的字段F1,..,FI的噪声值。
对该请求的应答包括两个部分 (1)在第一部分中,在所请求的字段和输入值的基础上形成逻辑公式Φ。将该公式设置为SQL查询用以从数据库D检索数据。这得到一组k条记录。
(2)在第二部分中,对所检索的k条记录进行计分。
依据完成该请求所需要的时间以及依据所期望的精确度来测量解决方案的成本。还要求总请求处理时间小于某个上限T 总时间=检索时间+计分时间, 计分时间=k%a, 其中k是所检索的记录的数目并且a是对于每次计分所需要的时间。检索时间对于记录的数目也是敏感的,尽管相关性可能不是线性的。从性能要求,可以粗略地计算应被检索的k的最大数目。存在多个可能的检索公式。
一个公式包括简单逻辑公式的逻辑析取(logical disjunction) Φ=(F1=s1)∨(F2=s2)...∨(FI=sI). 这种公式表示确保当至少一个字符串是正确值时,那么将检索所预期的记录并且对其进行计分。
使Xi是在字符串si中差错的数目。对于简单逻辑公式φ,S(φ)是满足φ的记录的数目。于是,Φ不能检索所预期的记录的概率是 并且利用Φ=φ1∨φ2∨...∨φI所检索的记录的数目是
例如,如果I=3,Φ=φ1∨φ2∨φ3,并且
另一种公式表示包括逻辑合取(logical conjunction) Ψ=(F1=s1)&(F2=s2)...&(FI=sI) 在这种情况下,所预期的记录将不被检索的概率是 并且所检索的记录的数目是 S(Ψ)=S(φ1&φ2...&φI) 作为这些公式的使用例子,设想具有n=106条记录的数据库,并且概率P(φ1)=0.04,P(φ2)=0.03,以及P(φ3)=0.02。这意味着S(φ1)=4%104,S(φ2)=3%104,以及S(φ3)=2%104。假设以0.05的差错率输入分别具有长度2、6、和4的字符串s1、s2、s3。于是,在s1、s2、s3中不发生差错的概率分别是0.5404、0.7351以及0.8145。
利用Φ作为检索公式,具有 S(Φ)=8.7×104 以及 F(Φ)=0.0226。
利用Ψ作为检索公式,具有 S(Ψ)=24, 以及 F(Ψ)=0.6765。
这个例子说明了仅仅使用或(OR)逻辑以及仅仅使用与(AND)逻辑的检索公式由于对立的原因而可能不会产生出满意的结果。或(OR)逻辑导致需要被检索和计分的太多记录,而与(AND)逻辑导致不能获取所预期的记录的过高概率。
用于改进该情形的一个策略是使用公式,该公式是较小数目的项的合取的析取。举例来说,在I=3的情况下,将得到 Γ=(φ1&φ2)∨(φ2&φ2)∨(φ3&φ1) 这对于以上所述例子得到 S(Γ)=2.6%104 以及 F(Γ)=0.2110。
使用合取的析取的公式表示不适用于I=2的情况。先前的检索公式以针对字段值的整个字符串比较为基础。另一种公式表示以字段值的一部分的比较为基础。s(i)表示字符串的第i个字符并且s(i,j)表示s的开始于i并且结束于j的子字符串。
考虑以下形式的检索公式 Δ=((F1=s1)&(F2(i,j)=s2(i,j)))∨((F1(i,j)=s1(i,j))&(F2=s2)) 例如,如果i=j=1,那么Δ检索所有记录,其中第一字段等于s1并且第二字段的第一字符等于s2的第一字符、或者第二字段等于s2并且第一字段的第一字符等于sI的第一字符。
如果假定字段Fi的第一字符的概率是x,那么P(Fi(l)=x)=0.1。由于在字母表中有26个字母,因此这是保守的估计。
这种部分比较公式表示可应用于为上述的数字示例来计算S(Δ)以及F(Δ) S(Δ)=0.58×104=(0.04×0.1+0.03×0.1-0.04×0.03)×106, F(Δ)=0.1855=1-(0.5404×0.95+0.7351×0.95-0.5404×0.7351)。
相反,对于Φ=(F1=s1)∨(F2=s2) S(Φ)=6.88×104=(0.04+0.03-0.04×0.03)×106, F(Φ)=0.1218=(1-0.5404)×(1-0.7351), 并且对于Ψ=(F1=s1)∨(F2=s2) S(Ψ)=0.12×104=(0.04×0.03)×106, F(Ψ)=0.6028。
可以将Δ公式表示扩展为如下处理4个参数i、j、h、k的形式 Δ(i,j,h,k)=((F1(i,j)=s1(i,j))&(F2(h,k)=s2(h,k)))。
该公式采用字符串s1的(j-i)以及s2的(k-h)的q=(j-i)+(k-h)个字符用以与字段的对应值相比较。与采用来自一个字符串的相同数目的字符相比,通常对于不同的字符串(字段)使用两群字符更加有效。原因在于尽管假定在两个字符串中的两群字符为独立的是合理的,但是对于在相同字符串中的字符群做出这样的假设是不合理的。例如,“Smith”是普通的姓氏(概率P(姓氏=“Smith”)=0.03),但是条件概率P(姓氏(4,5)=“th”|名字(1,3)=“Smi”)是高的(0.3)。
注意,用以比较的字符标识并不需要局限于字符串内的自然位置。可以开始于左侧或者右侧,并且可能仅仅对辅音或者元音、或者字母表的任何子集进行计数。此外,字符的选择应该保证独立性的假设是合理的。
仅仅一个输入字符串s1的情况显现出不同的挑战。如果S(F1=s1)太大,那么有必要在花费时间进行搜索之前来检测该条件。假设可以在时间极限之内被计分的记录的最大数目是km。可以存储其频率大于km的字段值的列表,并且在发起SQL检索之前对照该列表对给定的字符串s1加以检查。这种值的数目小于

对整个字符串的搜索未能检索到所预期的记录的概率是 1-(1-r)l, 其中r是差错率并且l是输入字符串的长度。大多数时间,问题并不在于S(F1=s1)太大,而是失败的概率过高。例如,如果s是所输入的长度为15的姓氏并且差错率是0.05,那么F(姓氏=s)=0.5367。如果这样的失败水平是不可接受的,那么应该放宽搜索条件。例如,可以使用搜索条件F1(i,j)=s(i,j)。如果j-i=5,那么未能检索所预期的记录的概率降低为0.2262。
因此,当搜索条件是一个字符串时,在该搜索上的部分搜索是较好的方法。例如,胜于其搜索整个字符串,更好的是使用最初的5或6个字符作为数据库搜索准则。为了避免检索太多的记录,或许应该在首次运行之前就建立高频率字符串词典。于是在开始SQL查询之前通过该词典对用户的搜索进行过滤。如果在词典中找到用户的搜索字符串,那么将不发布任何SQL查询并且将会向用户询问更多的信息。注意,对于使用部分比较的检索公式,应该预先计算部分字符串。
当用户提供了2个字符串时,检索公式Δ(i,j,h,k)在用以检索和计分的记录的数目与容错之间提供更好的平衡。当用户提供两个以上的字符串时,合取公式的析取是良好的搜索候选。
根据本发明的实施例,作为初步步骤,应该收集数据库值的频率信息。可以在字符串之内对每个字段预先规定一组字符位置,对所述每个字段应用患者搜索。对于应用患者搜索的字段,将扫描所有的记录并且将对所有值的频率进行计数。例如,假设患者搜索可以以字段(例如姓氏、名字、出生日期、家庭地址、医疗记录编号(MRN)以及社会保险号(SSN))的组合为基础。一组位置可以是任意的,但是为了简单的缘故,可以假定所选择的位置是联贯的并且从字符串的左侧(开头部分)或者右侧(尾端)开始计数。给定一组位置,对每个不同值的频率进行计数。通过数据库的扫描对以下非-限制性、示范性字符串值的频率进行计数,其中所述字符串值由姓氏、名字、出生日期、家庭地址的最初i个字符以及MRN、SSN的最后i个字符形成。i的值可以是3、4和5。例如,对于i=4以及名字字段,字符串“adle”的频率将给定的姓名“Adler”、“Adley”、“Adleen”等计算在内。
然后通过将计数(counts)除以数据库的大小来将字符串频率转换为概率(比率)。该概率在数据库自身得到更新时在一段时间内比计数的数目更稳定。
周期性地或者每当数据库经历重要的更新合并用以反映其当前状态的时候来重复这两个步骤。
将具有比预先规定的阈值更高的概率的那些字符串存储在存储器中。在数据库大小和必需的响应时间以及比较速度的基础上确定该阈值。例如,对于大小为1百万条记录的数据库,如果希望仅仅保留频率计数高于100的字符串的话,应该设定阈值为102/106=10-4。就是说,仅仅保留了频率大于100的字符串。未在表中找到的任何字符串都可以被认为具有很低的频率。实际姓名分布的重偏态(heavy skewness)意味着满足该条件的字符串的数目通常少于数百个。在另一个方面,如果发现例如社会保险号(SSN)的最后4个数字的分布实际上是均匀的,(即4个数字的任何字符串的概率都是相同的),那么就仅仅存储该概率值。
在图7中描绘了根据本发明实施例的数据敏感检索过滤过程的流程图。假定已将数据库值的频率信息制成表格,在步骤71提供搜索准则。搜索准则可以包括与医疗人口统计学数据库中的适当记录相匹配的字段值的一个或多个字符串。给定该搜索准则,数据库搜索引擎浏览频率表用以确定如果假定搜索准则的i个字符是正确的话那么对于每个过滤公式而言池将具有多少条记录以及使用什么逻辑连接。一旦已经接受了搜索准则,就对搜索准则进行规格化用以取出电话号码、地址、SSN等等。
在图1中描绘了根据本发明实施例的示范性字段比较的表。该表显示了18种可能的搜索准则,一个搜索准则用于表中的每个编号的行。应注意搜索准则的这种选择是示范性和非限制性的,根据本发明的实施例,可以使用更多或更少的搜索准则。标记为“定位器字段(Locator Field)”的列对应于拥有搜索准则的定位器,而标记为“记录字段(Record Field)”的列对应于数据库中的记录。标记了“距离测量(Distance Measure)”的列表示字段比较方法,其用于比较该行的定位器和记录,并且标记了“极限(Limit)”的最后一列表示在比较中所使用的字符的数目。在表中的最后一行表明缺省比较使用具有2个字符的编辑距离(EditDistance)比较器。
根据搜索字段配置信息,检索与在搜索准则中所指定的名字等效的姓名的列表、也就是说属于所述群中的至少一个群的所有姓名的列表,其中所指定的名字属于所述群。个人的名字可能具有不同的变型(variation)。例如,Robert-Bob-Bobby或者Theodore-Ted-Ed。这样的姓名变型被认为是等效的。当用户想要找到Bob White,应该考虑Robert White和Bobby White作为相宜的候选。这种列表称为sc.等效名字列表(sc.equivalentFirstNameList)。
此外,在本发明的实施例中,可以针对基于语音编码支持搜索的那些数据库来计算姓氏的所述编码。
再一次参考图7,在步骤72,从数据库中检索所有人口统计学记录,其中下面所列出的条件中的任何一个都是真的(这里rec.表示在数据库中的记录,并且sc.表示搜索准则)。由于仅仅将在搜索准则中所指定的字段用于计分,因此对于候选仅仅检索在搜索准则中已指定的那些字段,以便防止由于在检索过程中昂贵的联合所带来的效率低下。
作为例子,假设搜索准则是“John Deer”。假定在1百万条记录的数据库中字符串“john”的概率是0.01并且字符串“Dee”的概率是0.015。以下情形是可能的 a)如果假定在名字中的最初4个字符是正确的,那么池将具有1000000%0.01=10000条记录。
b)如果假定姓氏的最初3个字符是正确的,那么池将具有15000条记录。
c)如果假定名字的最初4个字符是正确的与(AND)姓氏的最初3个字符是正确的,那么池大小是1000000%0.01%0.015=150。
d)如果假定名字的最初4个字符是正确的或(OR)姓氏的最初3个字符是正确的,那么估计池大小大约是1000000%(0.01+0.015-0.01%0.015)=24850λ25000。
假定为了满足响应时间要求,所检索的记录的池将不会超过10000。于是希望找到允许最大容错而将池大小保持在极限之内的过滤条件(逻辑公式)。例如,上述的选项(a)是最好的,因为该选项提供了最大的容错而同时满足了时间响应要求。因为池将会太大,所以将排除选项(b)和(d)。选项(c)比(a)稍差,因为例如如果差错发生在第3个字符中(正确姓名是John Dear),那么(c)将不能检索记录而(a)仍能够检索。
有时候可以发生可用选项中的任何一项都不提供小于10000条的池。例如对“James Smith”的搜索,如果“jame”的概率是0.12并且“smi”的概率是0.1的话,甚至是利用与(AND)连接的选项(c)也将具有1000000%0.12%0.1=12000。这意味着该搜索不能在指定的时间之内完成。除非用户接受更长的响应时间,否则系统应该请求更多的信息,例如家庭地址,并且使用该信息来更进一步地限定池。例如,如果家庭地址是“123 Main St”,那么不通过“Jame”+“Smi”而是通过“Jame”+“Smi”+“Main”从数据库中检索记录。最好的过滤器将是通过家庭地址的最初4个字符检索记录的过滤器,这导致1000000%0.009=9000条记录。
在生僻姓名、像“Zbigniew Brzezinski”的情况下,“zbig”的概率=0.00001并且“brz”的概率=0.0001,甚至采用名字的4个字符或(OR)姓氏的3个字符的选项也仅仅将获得1000000%(0.0001+0.0001)=110条记录。在这种情况下,可以通过仅仅采用名字的3个字符或姓氏的3个字符是正确的来放宽假设。这容许名字的第4个字符中的差错。
如下是根据本发明实施例的示范性、非限制性条件列表。在条件后的“(RL关键字(key))”表示该条件是预先计算的记录链接。
a.姓名(Names) i.Sc.姓氏=rec.姓氏 ii.Sc.名字=rec.名字 iii.Sc.姓氏语音=rec.姓氏语音(RL关键字) iv.Sc.姓氏具有长度>=4与(AND)rec.姓氏从sc.姓氏开始 v.(在查询中包括昵称=真)与(AND)Rec.名字出现在sc.等效名字列表中 vi.Rec.名字=sc.姓氏与(AND)rec.姓氏=sc.名字 vii.Sc.姓氏最初4个字符=rec.姓氏最初4个字符(RL关键字) b.地址(Address) i.Sc.地址栏1=rec.地址栏1 ii.Sc.房号=rec.房号(RL key) iii.Sc.街道名=rec.街道名(RL关键字) c.电话号码(Phone Number) i.sc.电话号码=rec.电话号码(在区号后的7个数字,RL关键字) d.出生日期(Date ofbirth) i.Sc.出生月份=rec.出生月份与(AND)sc.出生日期=rec.出生日期与(AND)sc.出生年份=rec.出生年份 e.个人标识符(Person Identifiers) i.Sc.SSN=rec.SSN ii.Sc.SSN最后4个字符=rec.SSN最后4个字符(RL关键字) iii.Sc.个人号码=rec.个人号码 iv.Sc.医疗记录号=rec.医疗记录号 在步骤73,如下对从数据库中所检索的每条候选记录进行计分。将给定的定位器与候选相比较用以为搜索准则字段产生具有分量的比较向量。执行字段对字段比较,用以填充比较向量的分量。根据本发明的实施例,使用在图1中列出的字段比较方法。在该列表中的字段比较方法是示范性的和非限制性的,并且可以在本发明的其它实施例中使用其它的字段比较方法。对于在比较配置中没有明确列出的每个指定搜索准则来说,使用缺省的比较方法来将该字段与从数据库中所检索的记录中的相同字段进行比较。
通过计算其之间的指定字符串距离,利用所附加的约束来比较字段,其中该约束为距离在给定的(取决于字段的)上限处饱和。大于该上限的任何距离都被设置为极限,例如利用编辑距离(5)(如下所述)来对名字进行比较意味着如果该距离小于5那么在两条记录中名字的比较结果是其之间的编辑距离,否则将其设置为5。
如下是用于字段比较的示范性、非限制性字符串距离函数的列表(所有字符串度量都是大小写不敏感的(case insensitive)))。
a.精确匹配距离(Exact Match Distance)当字符串完全匹配时为0,否则为1。
b.汉明距离(Hamming Distance)对长度相同的两个字符串不一致的地方的数目进行计数(例如1000和1010之间的距离是1,而1000和0100之间的距离是2)。如果两个字符串的长度是不同的,那么距离应该是长度差与在较短字符串和长度等于较短字符串长度的较长字符串前缀之间的汉明距离之和。
c.编辑距离(Edit Distance)对用以将一个字符串转换成其他的所要求的基本(单个字符)编辑操作(插入、删除、替换)的最小数目进行计数(例如,John和Jon之间的距离是1,John和Jonh之间的距离是2,John和Jo之间的距离是2)。
d.具有交换的编辑距离(Edit Distance With Swap)包括交换相邻字符作为上述定义的附加操作。(注意根据这种定义所使用的实现是不恰当的,但是对于我们的申请是足够好的,因为在任意字符位置包含在最多一个交换操作中的假设下,可能是正确的)。
e.名字距离(First Name Distance)如果两个字符串相等,则距离是0,如果一个是另一个的前缀,或者有一群包括两个字符串的常用姓名,那么距离是1,否则是两者之间具有交换的编辑距离。
f.姓氏距离(Last Name Distance)如果两个字符串相等,则距离是0,否则如果一个是另一个的前缀,那么距离是1,如果编辑距离大于2并且两个字符串具有相同的语音编码,那么姓氏距离是2,否则是两者之间具有交换的编辑距离。
然后,使用在配置文件中所指定的概率信息来对比较向量进行计分用以获得分数(score)。用于针对字段j对比较结果cj进行计分的示范性、非限制性的公式是 并且将bScore定义score(cj)在所有j上的总和,其中定位器字段以及人口统计学记录中的相应字段都不为空。在公式中的概率参数Pij(cj)反映了字符串频率以及数据质量,并且由cj采取的值范围也取决于所使用的比较方法。
在图2和3的表中显示了第一概率P0j(cj)和第二概率Plj(cj)的示范性值。这些表中的每一个的格式都是相同的。参考图2,下标j指的是行编号(即,搜索准则定位器字段),并且在相应字段名的左侧显示了多达5列的数字。这5列与以下事实相对应,即根据本发明的实施例用于字段检索的字符最大数目是5个字符,如在图1的表的“极限”列所示。对于给定的行,从左至右,概率值单调递增,反映出在定位器字段与记录字段之间因为有共同的字符而具有更高的匹配概率。因此,关于“名字”字段,如果仅仅定位器字段与记录字段的第一字符相匹配,那么概率值为低0.003,而如果最初的5个字符相匹配,那么概率值较高0.85。
如果在搜索准则中对名字和姓氏两者进行指定,那么在搜索准则中也对名字和姓氏进行交换,并且通过重复将定位器与候选进行比较并且对比较向量进行计分以获得cScore的步骤,来针对记录对新的搜索准则进行计分。将候选的分数设置为max(bScore,cScore-swapPenalty)。SwapPenalty(交换损失)初始被设置为log(10)。注意可以重复使用从不包括姓名的bScore计算中所得出的全部比较结果,并且不必再次计算。
再次参考图7,在步骤74现在将分数转换为0-100的数值范围。这在搜索准则中所指定的字段的基础上来实现。将转换分数(transformed score)定义为 transformedScore=(score-minScore)/(maxScore-minScore)%100,其中score为在前面步骤中所获取的分数,并且maxScore和minScore是对于指定的搜索准则来说可能可达的最大和最小分数并且在下面予以定义。在cj的所有可能的值上通过 maxScorej=max(score(cj))来定义最大分数。对于一组给定的搜索准则,将maxScore定义为在所有j上maxSeorej的总和,其中用于产生比较向量的第j个分量的定位器字段在搜索准则中非空。类似地,对于一组搜索准则定义minScorej和minScore。注意,对于每个j,可以在启动时间计算maxScorej和minScorej,而maxScore和minScore需要对于指定标准所基于的每次搜索都要被计算一次。
在步骤75,如果记录代表“好的”候选,那么将其添加到要返回的记录列表。根据本发明的实施例,如果所转换的匹配分数超过所配置的阈值那么就认为候选是好的,其中所述阈值初始被设置为65。对于在要返回的记录列表中的每条候选记录,检索该个人识别符的完整“最新”记录。对于在候选记录中具有非空值的每个字段,使位于目前所检索的完整记录中的值用候选记录中的值来替换。
在图4中显示了示范性的表,该表描述利用联合的个人姓名、地址、和电话号码字段描述了数据库行。现在参考该图,该表具有8行数据用于对JohnSmythe的搜索查询。标记为“PersObjId”的第一列描述了通过查询进行搜寻的主体(subject)的标识编号。第二列“FN”列出了名字,第三列“LN”列出了姓氏,第四列“地址栏1(AddressLinel)”列出了主体的地址,第五列“电话号码(Ph..#)”列出了主体的电话号码,而分别标记为“当前姓名(Curr.Name)?”、“当前地址(Curr.Addr.)?”、和“当前电话(Curr.Ph.)?”的第六、第七和第八列表明姓名、地址、和电话号码字段是否匹配搜索准则。例如,如图5的表中所示,如果用户已搜索John Smythe,并且提供了地址和电话号码,并且数据库具有后来将其姓名改为Jack Smythe的John Smith,那么数据库记录将如图4的表的最底行中所示的那样进行更新,并且在图6的表中显示所返回的查询结果。
根据本发明的实施例,可以采用数据库值的频率来使搜索准则和数据库值的比较更加有效。假定搜索准则对于给定名字是字符串SG并且对于姓氏是字符串SL。所检索到的池包括(DG1,DL1),(DG2,DL2)、等等直到(DG10000,DL10000)。事实上在10000个字符串DGi之中,存在着许多重复。可以利用该事实来加速总体的比较。从i=1开始,将SG与DG1进行比较,存储DG1,并且将结果放入表中,而不是将SG与每个DGi进行比较。对于i=2以及以上(up),在表中搜索DGi,并且如果找到,则使用所存储的结果。如果没有找到DGi,则对SG和DGi进行比较并且将结果存储在表中。
要理解的是,本发明可以以硬件、软件、固件、专用过程、或者其组合的不同形式来实现。在一个实施例中,本发明可以用软件来实现作为包含在计算机可读程序存储装置上的有形应用程序。该应用程序可以被上载到或者由包括任何适当体系结构的机器执行。
图8是根据本发明实施例用于实现数据库搜索的数据敏感过滤的示范性计算机系统的框图。现在参考图8,用于实现本发明的计算机系统81尤其可以包括中央处理单元(CPU)82、存储器83以及输入/输出(I/O)接口84。计算机系统81通常通过I/O接口84与显示器85以及各种输入设备86(例如鼠标和键盘)相耦合。支持电路可以包括诸如高速缓冲存储器、电源、时钟电路以及通信总线的电路。存储器83可以包括随机存取存储器(RAM)、只读存储器(ROM)、磁盘驱动器、磁带驱动器等等、或者其组合。本发明可以被实现为例行程序(routine)87,所述例行程序被存储在存储器83中并且由CPU 82执行用以处理来自数据库88的数据。同样地,计算机系统81是通用计算机系统,其在执行本发明的例行程序87时变为专用计算机系统。
计算机系统81还包括操作系统和微指令代码。在此处描述的各种过程和功能可以是微指令代码的一部分或者是通过操作系统执行的应用程序的一部分(或者是其组合)。此外,各种其它的外围设备可以连接到该计算机平台,例如附加的数据存储装置和打印装置。
要进一步理解的是,因为可以以软件来实现在附图中所描绘的某些组成系统组件以及方法步骤,所以根据对本发明编程的方式,在系统组件(或者过程步骤)之间的实际连接可能会有所不同。给定在此处所提供的本发明的教导,本领域普通技术人员将能够设想本发明的这些以及类似的实现或配置。
尽管已经参照优选实施例对本发明进行了详细描述,本领域技术人员将理解的是,可以对其做出各种各样修改和替换而不会脱离如在所附权利要求中所阐明的本发明精神和范围。
权利要求
1.一种用于在患者数据库搜索中数据敏感过滤的方法,所述方法包括步骤
提供包括一个或多个搜索定位器字段的搜索准则;
根据所述搜索准则确定检索公式,其中所述检索公式在所述搜索准则中使容错最大化同时满足预先规定的响应时间要求;
从所述数据库中检索所述候选记录,其中如果不能找到检索公式来满足所述响应时间要求,则请求附加的搜索准则;
通过将搜索准则定位器字段与所检索到的相应记录字段相比较来对每条所述候选记录进行计分;
确定所述候选记录的所述分数是否超过预先规定的阈值,并且如果所述候选分数确实超过所述阈值,那么响应于所述搜索准则将所述候选记录添加到要返回的记录列表中。
2.权利要求1的方法,其中所述搜索准则包括名字和姓氏,该方法进一步包括编辑与在所述搜索准则中的所述名字等效的姓名的列表。
3.权利要求1的方法,其中将搜索准则定位器字段与相应的候选记录字段相比较包括
通过所述定位器字段和所述候选记录字段对的字段比较来完成字段,用以利用针对直至在所述字段对中预先规定数目的字符为每个字段对所预先规定的字段比较方法来为字段对j填入比较结果向量cj的分量;
利用下述公式在一个或多个概率的基础上对所述比较结果cj进行计分
其中P0j(cj)和P1j(cj)为概率,所述概率是在所述字段对中匹配字符数目的函数;并且
在所有字段j上对score(cj)进行求和用以计算第一分数,其中定位器字段和在所述候选记录中的相应字段都不为空。
4.权利要求3的方法,其中如果在搜索准则中指定名字和姓氏,则交换搜索准则中的所述名字和姓氏,重复通过将交换后的定位器字段与候选记录字段的字段相比较来完成字段的所述步骤,对所述比较结果cj进行计分,并且在所有字段j上对所述分数进行求和用以计算第二分数,并且选择所述第一分数和所述第二分数减去交换损失的最大值。
5.权利要求4的方法,进一步包括根据以下公式将所述分数转换为0至100的数值范围
transformedScore=(score-minScore)/(maxScore-minScore)%100,
其中
maxScore=∑jmaxScorej,
minScore=∑jminScorej,
其中用于产生比较向量的第j个分量的定位器字段在搜索准则中非空,并且其中在cj的所有可能值上,maxScorej=max(score(cj))并且minScorej=mi(score(cj))。
6.权利要求3的方法,其中字段的所述字段比较方法是精确距离匹配、汉明距离、和编辑距离、和具有交换的编辑距离、名字距离、以及姓氏距离中的一个。
7.权利要求1的方法,进一步包括对于要返回的所述记录列表中的每条候选记录,从所述搜索定位器字段的所述数据库中检索最新的完整记录;
对于在所述候选记录中具有非空值的每个字段,使在所检索的完整记录中的字段值用在候选记录中的对应值来替换;以及
将改变后的完整记录添加到所述数据库。
8.一种用于在患者数据库搜索中数据敏感过滤的方法,所述方法包括步骤
提供搜索准则用于从包括一个或多个搜索定位器字段的数据库中检索一条或多条记录;
确定要从所述数据库中检索的候选记录的最大数目、以及用于检索所述记录的最大响应时间;
在所述搜索准则中的多个字符为正确的基础上确定要检索的多个候选记录;
根据所述搜索准则确定检索公式,其中所述检索公式在所述搜索准则中使容错最大化同时满足所述响应时间要求;以及
从所述数据库检索所述候选记录,其中如果不能找到检索公式来满足所述响应时间要求,则请求附加的搜索准则。
9.权利要求8的方法,其中如果使用所述检索公式可检索的候选记录的数目降到候选记录的最小数目之下,那么减少在所述搜索准则中假定为正确的字符的所述数目。
10.权利要求8的方法,其中根据数据库值的频率表来确定要检索的候选记录的所述最大数目,所述数据库值的频率表表示在所述数据库中所包括的搜索准则字段的概率,并且其中将具有比预先规定的阈值高的概率值的字符串存储在存储器中。
11.权利要求10的方法,其中所述阈值以数据库大小、必要的响应时间、以及所述搜索准则和所述候选记录之间比较的速度为基础。
12.权利要求10的方法,其中所述概率包括在所述数据库中所包括的搜索准则子字段的概率。
13.权利要求8的方法,进一步包括
将所述搜索准则与第一候选记录进行比较并且将所述比较的结果和所述第一候选记录存储在表中;
通过搜索所述表来搜索每条后续的候选记录,其中如果没有在所述表中找到所述后续的候选记录,那么将所述后续的候选记录与所述搜索准则进行比较并且将所述比较结果和所述后续的候选记录存储在所述表中。
14.权利要求18的方法,其中所述检索公式包括从所述一个或多个搜索定位器字段所形成的逻辑公式。
15.权利要求14的方法,其中如果所述搜索准则仅仅包括一个搜索字段,则使所述检索公式以所述搜索字段的子字符串为基础,并且搜索高频字符串的词典,并且如果没有在所述词典中找到所述搜索子字符串则执行数据库查询。
16.权利要求14的方法,其中如果所述搜索准则包括两个以上的搜索字段,则从搜索准则对的合取的析取来形成所述逻辑公式。
17.权利要求14的方法,其中如果所述搜索准则包括两个搜索字段,则从整个搜索字段的比较与部分搜索字段的比较的逻辑组合来形成所述逻辑公式。
18.一种计算机可读程序存储装置,有形地包括计算机可执行指令的程序用以执行在患者数据库搜索中数据敏感过滤的方法步骤,所述方法包括步骤
提供包括一个或多个搜索定位器字段的搜索准则;
根据所述搜索准则确定检索公式,其中所述检索公式在所述搜索准则中使容错最大化同时满足预先规定的响应时间要求;
从所述数据库中检索所述候选记录,其中如果不能找到检索公式来满足所述响应时间要求,则请求附加的搜索准则;
通过将搜索准则定位器字段与所检索的相应记录字段相比较来对每条所述候选记录进行计分;
确定所述候选记录的所述分数是否超过预先规定的阈值,并且如果所述候选的分数确实超过所述阈值,那么响应于所述搜索准则将所述候选记录添加到要返回的记录列表中。
19.权利要求18的计算机可读程序存储装置,其中所述搜索准则包括名字和姓氏,该方法进一步包括编辑与在所述搜索准则中的所述名字等效的姓名的列表。
20.权利要求18的计算机可读程序存储装置,其中将搜索准则定位器字段与相应的候选记录字段相比较包括
通过所述定位器字段和所述候选记录字段对的字段比较来完成字段,用以利用针对直至在所述字段对中预先规定数目的字符为每个字段对所预先规定的字段比较方法来为字段对j填入比较结果向量cj的分量,
使用下述公式在一个或多个概率的基础上对所述比较结果cj进行计分
其中P0j(cj)和P1j(cj)为概率,所述概率是在所述字段对中匹配字符数目的函数;以及
在所有字段j上对score(cj)进行求和用以计算第一分数,其中定位器字段和在所述候选记录中的相应字段都不为空。
21.权利要求20的计算机可读程序存储装置,其中如果在搜索准则中指定名字和姓氏,则交换搜索准则中的所述名字和姓氏,重复通过将交换后的定位器字段与候选记录字段的字段相比较来完成字段的所述步骤,对所述比较结果cj进行计分,并且在所有字段j上对所述分数进行求和用以计算第二分数,并且选择所述第一分数和所述第二分数减去交换损失的最大值。
22.权利要求21的计算机可读程序存储装置,该方法进一步包括根据以下公式将所述分数转换为0至100的数值范围
transformedScore=(score-minScore)/(maxScore-minScore)%100,
其中
maxScore=∑jmaxScorej,
minScore=∑jminScorej,
其中用于产生比较向量的第j个分量的定位器字段在搜索准则中非空,并且其中在cj的所有可能值上maxScorej=max(score(cj))并且minScorej=mi(score(cj))。
23.权利要求20的计算机可读程序存储装置,其中字段的所述字段比较方法是精确距离匹配、汉明距离、和编辑距离、和具有交换的编辑距离、名字距离、以及姓氏距离中的一个。
24.权利要求18的计算机可读程序存储装置,该方法进一步包括,对于要返回的所述记录列表中的每条候选记录,从所述搜索定位器字段的所述数据库检索最新的完整记录;
对于在所述候选记录中具有非空值的每个字段,使在所检索的完整记录中的字段值用在候选记录中的对应值来替换;以及
将改变后的完整记录添加到所述数据库。
全文摘要
一种用于在患者数据库搜索中数据敏感过滤的方法包括提供(71)包括一个或多个搜索定位器字段的搜索准则,根据所述搜索准则确定检索公式,其中所述检索公式在所述搜索准则中使容错最大化同时满足预先规定的响应时间要求,从所述数据库中检索(72)所述候选记录,其中如果不能找到检索公式来满足所述响应时间要求,则请求附加的搜索准则,通过将搜索准则定位器字段与所检索的相应记录字段相比较来对每条所述候选记录进行计分(73),确定(75)所述候选记录的所述分数是否超过预先规定的阈值,并且如果所述候选的分数确实超过所述阈值,那么响应于所述搜索准则将所述候选记录添加到要返回的记录列表中。
文档编号G06F17/30GK101194258SQ200680018815
公开日2008年6月4日 申请日期2006年5月31日 优先权日2005年5月31日
发明者P·H·姜, W·A·兰迪, S·桑迪尔亚 申请人:美国西门子医疗解决公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1