基于医疗服务区域划分的倒排空间索引方法与流程

文档序号:14940948发布日期:2018-07-13 20:45阅读:904来源:国知局

本发明属于移动医疗领域,是一种应用于医疗领域的分布索引方法。



背景技术:

移动医疗已经成为医疗卫生设备采集和测量数据的新热点。它对提高社会效益具有重要意义,如节省社会医疗资源(包括医疗设施和医务人员)、满足高峰时间更多患者的用车需求、提高因事不便治疗的患者的救治率等。



技术实现要素:

本发明通过从医学角度进行区域分区,设计一个基于网格分区机制建立的倒排索引,并且着眼于解决查询医学领域大规模数据的难题。

为了实现上述目的,本发明专利所采用的技术方案是:

一种基于医疗服务区域划分的倒排空间索引方法,包括如下步骤:建立基于医疗服务区域划分的网格区域划分;录入倒排区域索引数据项,对所述医疗服务区域中包含的医疗资源数据按网格为单位进行录入并收集于检索系统;当索引查询被接收时,对查询位置定位到对应的网格区域,并在该网格区域找到对应的医疗服务区域并执行倒排医疗服务区域索引的预先索引。

所述倒排医疗服务区域索引的预先索引的步骤如下:在一个多维数据集对象的移动医疗服务p∈p中,输入第一个分区的数据,将其标记为每一个医疗服务区域的中央单元格mcm,mapreduce将输入文件分割,大块的映射并行运行来处理每个数据碎片在每个数据片段创建的子索引,并由默认的空mappermapper来执行合并处理,在mappermapper中建立子索引的算法;之后,在每个mapper的执行过程中,它将通过文本输入格式顺序读取输入拆分,该文本定义了一个如何从文件读取数据到mapper的实例,它计算p中每个对象r、s和所有枢轴之间的距离,并将r、s分配到最靠近的枢轴p,每一点集中在一个医疗服务单元中,它将生成m个医疗服务单元,然后分别将<mcm,list(pi)>成对传递,mapper输出每个对象r、s及其分区idvcm、原始数据集名称和r、s与最近枢轴的距离,最后,将mapper的输出写进hadoop文件系统。

所述的索引分为两个步骤:过滤步骤:通过医疗服务区域空间范围内的查询来获得可能包括结果的候选集;验证步骤:主要是通过计算检查所有的候选点,排除候选点中不属于最佳的点从而获得最优结果。

所述过滤步骤:首先以q为中心,初始化轮圈半径r=δ,之后对这个圆型区域覆盖的医疗网格区域进行监控,当算法执行中在并行的增加半径r=r+δ时,会触发新的一轮pct算法来增量更新近邻对象集p,在随后的迭代执行过程中,在单位时间片内,仅对整个数据空间中的监控半径r监控,最终通过增量的执行pct算法可以找到q周围空间的所有邻居并作为候选结果点集scnd。

验证步骤:把得到的候选集scnd中的每一个点作为查询点,通过执行分布式knn查询算法,来计算scnd集中每一个点各自的反向邻居来验证其是否为q的rnn,对于每一个候选集scnd中的点,采用分布式的机制来并发进行验证,每一个并行任务中,通过持续的遍历倒排医疗服务区域空间区域格索引执行查询来进行验证,直到所有的候选集中的点都被验证完成。

有益效果:上述方法可以有效提高索引效率。相较于“r-tree”的主要优点是:只需要更改的某个网格来执行简单的更新;相较于使用计算机平均网格划分,所以在实际应用中更加合理,相对于基于倒排voronoi与倒排聚类索引,来讲都需要预先确定voronoi代表点或聚类中心,这需要较大的计算量.而我们划分是基于医疗服务区域语义的,通常行政居民区域该医疗服务区域数据已划分好,无需事先预备计算。本发明的方法尤其是一种新的基于医疗服务区域划分的大型医疗服务网络索引解决方案,采用了倒排的方式,基于医疗服务区域这样的自然语义的划分相结合,不但提高了分布式效率,还避免了中心代表点的计算工作量量,从而加快了大规模索引的速度。满足了移动医疗在分布式、可扩展、高效等方面的需求,对比结合目前已经有的索引例如:多媒体数据集、谷歌搜索引擎、快速打车服务、共享单车的搜索引擎等,我们的索引方法更加符合各类小区实际情况,并可以有效处理大规模医疗呼叫数据处理,并能够解决医疗领域的及时突发性实现线上线下、地图与实时结合等等优势。

附图说明

图1倒排网格指标结构示意图;

图2基于网格的索引示例示意图;

图3倒排网格索引示例示意图;

图4过滤比对过程示意图;

具体实施方式

实施例1:一种基于医疗服务区域划分的倒排空间索引方法,应用政府现有的医疗行政区域的划分,结合倒排索引方法来解决用户的索引需要,处理医疗资源数据大、资源分散、统计混乱的问题,可以大大提高效率,解决医疗领域的大数据索引。发明主要组成如下:

s1.基于医疗服务区域划分的网格;

s2.面向医疗资源的倒排索引;

执行步骤如下:

s1.基于医疗服务区域划分的网格的建立。借鉴使用市政府安排好的医疗服务区域的安排,根据不同医疗服务区域的划分对城市进行网格区域划分;

s2.执行倒排索引录入,查询用户经常查询的关键词,对这些关键词以及其代表的数据为值(比如某类疾病对应的主治医生,专科医院,药品等等)与对应医疗服务区域中心为关键字进行提前录入整理;

s3.分别对s1中每个医疗服务区域网格中包含的医疗资源数据执行s2的统计录入,并将这些数据输入检索系统。

s4.查询时,首先寻找查询位置,定位到对应的网格,通过该网格找到对应的医疗服务区域,并在该医疗服务区域内执行倒排索引。

网格索引是数据流管理中最常用的索引结构之一,他能有效的支持流动式数据集项目的插入和删除操作。基于网格的空间索引的基本思想是将一个空间划分成一些区域,然后记录每个区域中需要储存的具体内容。当用户执行查询时,首先进入用户查询对象所在的单元格,然后快速查询单元格中选定的空间对象。由于网格索引通常是一次性通过大批量设计的离线预计算,所以一旦建立网格索引,又有一个新目标加入时,只需要更新本地索引项,原来的索引结构几乎是无需改变的。此外,网格单元的尺寸具有可以灵活设置的特点,增加了连续数据检索的灵活性。

通过大量研究发现,现有医疗资源的分布主要是以居住区商业建筑的居住人数和建筑面积为基础的,在城市的中心通常是大型医疗机构,如第三级甲等医院;而在住宅区则通常分布一些小型的社区医院。因此结合网格索引的优势,我们将计算机简单的平均网格分区改进,结合现有的医疗服务区域分区将城市空间分割为多个医疗服务区域(如图1所示)。

由于医疗资源数据的庞大性,我们使用倒排索引来解决大规模计算需求问题。我们首先将医疗数据(比如医务人员,医疗条件,药品,医疗器械等)输入到系统中,以医疗服务区域中心为关键字,医疗服务区域的网格为值,执行预先倒排索引操作。当有用户有索引更新需求时,也可以再执行倒排索引更新索引,当用户执行查询请求,调用该倒排医疗服务区域索引。

总体思想:如算法所示,给定一个多维空间中的数据集s,它会被hadoop的默认机制划分为所谓的输入拆分,很多程序可以同时并行运行。

据伪码算法的描述,在一个多维数据集对象的移动医疗服务p,其中p∈p中(p是分区中全部的医疗服务),输入第一个分区的数据,我们根据医疗区域基于网格的方法,将其标记为每一个医学区域的中央单元mcm。mapreduce可以将输入文件拆分为单独文件。大块的映射可以并行运行来处理每个数据碎片在每个数据片段创建的子指数。最终的合并处理由默认的空映射器来执行。基于上述说明,算法的主要操作是在映射过程中,所以我们着重介绍在映射器中建立子索引的算法,如算法所示:

算法实施如图4所示

之后,在每个映射器的执行过程中,它将通过文本输入格式顺序读取输入拆分(通常对应于分布式文件系统中的一个块)。该文本定义了一个如何从文件读取数据到映射器的实例,它计算p中每个对象r、s与所有枢轴之间的距离,并将r、s分配到最靠近的枢轴p。每一点在第2-3行中集中在一个医疗服务区域单元中,它将生成m个医疗服务单元,然后分别将<mcm,list(pi)>成对传递到第4行-6行中(list(pi)表示p中所有数据的集合)。映射器输出每个对象r、s及其分区vcm、原始数据集名称(r、s)和原始数据集与最近枢轴的距离。最后,我们需要将映射器的输出写进hadoop文件系统,以满足我们自己的需求,我们可以使用我们自己的“multipleoutputformat”,它规定了如何将计算的结果返回到第8-10行的底层永久存储中。通过使用imi,依据支点选择的设置,我们可以推出一个mapreduce作为执行的数据分区,使每个分区都收集部分统计。

对此,我们进行了实例实施:我们首先用32个服务器构建服务器集群。每个服务器组成的双核心amd2.0ghzcpu,73gbscsi硬盘和8gb内存,并安装了ubuntu10.10服务器操作系统和hadoop1.2。在每个从聚类过程只运行一个tasktrack维护一个datanode。默认的dfs块大小64mb。

下述是实施例对上述方法的应用,一个位于家中的患者身体不适,请求医疗援助,系统首先会定位他的位置(即找到对应的网格单元格),随后开始位置比对寻找附近的最近的医疗服务区域中心(即找到所在的医疗服务区域),具体实施如下两步:(1)过滤阶段:过滤阶段的主要目的是通过查询来获得可能包括结果的候选集。过滤阶段的核心思想是找到围绕随机点q的空间范围内的所有的邻居对象。通过利用设计pct算法来并行地读取q点周围的单元格,从而计算得到初始化的knn查询结果集以得到q点在空间数据集中的所有近邻对象。如图4。具体来说,首先以q点为中心,初始化轮圈半径r=δ,之后对这个圆型区域覆盖的医疗格区域进行监控。当算法执行中在并行的增加半径r=δ(此时r=2δ)时,会触发新的一轮pct算法来增量更新近邻对象集p。所以在随后的迭代执行过程中,在单位时间片内,只需要监控半径r=δ所对应的区域而不用监控整个数据空间。最终通过增量的执行pct算法可以找到q周围空间的所有邻近点并作为候选结果点scnd。(2)验证阶段:验证阶段主要是通过计算检查所有的候选点,排除候选点中不属于最佳的点从而获得最优结果。具体来讲,在前面的过滤阶段中,得到的候选点scnd。然后,把scnd中的每一个点作为查询点,通过执行分布式knn查询算法,来计算scnd集中每一个点各自的反向邻居来验证其是否为q的rnn。对于每一个候选集scnd中的点,采用分布式的机制来并发进行验证。每一个并行任务中,通过持续的遍历倒排空间区域格索引执行查询来进行验证,直到所有的候选集中的点都被验证完成。验证后,最终可以确定所有的结果集点来判定所在的医疗服务区域,随后,确认的那个医疗服务区域所在的服务器会收到提示,尽快做出医疗援助。

实施例2:例如实施例1,例如医院通过某些途径得知病人有患病的可能性,为了最快对达患者救治,首先会对患者位置定位,随后执行实例1的位置比对,得到最优解后,相应的医疗机构会立刻派出医疗小组达到。

以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明披露的技术范围内,根据本发明的技术方案及其发明构思加以等同替换或改变,都应涵盖在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1