医疗大数据访问控制方法、装置及计算机可读存储介质与流程

文档序号:23720501发布日期:2021-01-24 07:55阅读:97来源:国知局
医疗大数据访问控制方法、装置及计算机可读存储介质与流程

[0001]
本发明属于医疗数据隐私保护技术领域,具体涉及一种医疗大数据访问控制方法、装置及计算机可读存储介质。


背景技术:

[0002]
随着互联网信息技术的快速发展,各行各业都已经步入大数据时代。尤其在医疗领域,大数据时代更是造就了数字与健康、医疗前所未有的伟大融合。该融合使医学新研究和健康新服务彰显巨大的价值和潜力。医疗健康大数据环境下,基于数据标准和数据整合,医生给患者诊疗过程中可以调用患者的历史信息甚至基因信息。如此一来,医生就能实现在特定的时间点给特定的患者提供效果更好、更具有针对性的特定治疗方案,并且医疗健康大数据可以为医疗机构、政府相关管理部门及相关企业带来许多好处。比如,在政府管理方面,可以为政府在药品质量安全控制、医疗设备合格控制等方面提供决策支持;在商业方面,可为医药供应链及药品零售进行药品进销存优化;在医院业务方面,帮助医生提高专业能力,优化医疗资源的配置。但是医疗健康大数据在收集、挖掘、分析、利用每个阶段都需要一个良好的健康大数据产业生态环境,该产业生态环境的一个基本且重要的特征是“开放”,无论产业价值链与生态环境如何构建,都需要在一个“开放”的环境下实现健康大数据的采集、管理和使用等。然而,医疗健康大数据的“开放”在一定程度上会增加数据泄露的风险。比如,2017年9月,中国某医院的服务信息系统被黑客入侵,导致大量公民信息泄露、贩卖;2018年1月,中国某社区卫生服务中心工作人员因未授权访问导致几十万条新生婴儿和预产孕妇信息泄露;同年8月,澳大利亚第五大城市阿德莱德某医院因工作人员访问不当,意外暴露了约7200名儿童的医疗记录和个人资料。因此防止医疗健康大数据泄露已成为现在急需解决的问题。
[0003]
目前,已有许多学者根据不同策略提供了不同的访问控制本发明方法,如传统的访问控制(包括自主访问控制、强制访问控制)和基于角色的访问控制本发明方法等,这些本发明方法采用静态的授权方式,使用固定的策略,不考虑不确定性和大数据环境,在大数据环境中授权变化频繁的场景很难适用。近年来,众多学者在医疗大数据访问控制领域做了较多研究,但大多是在不区分医生类别的情况下直接计算医生的风险值,应用时依然存在诸多问题。为此,研发一种能够解决上述问题的医疗大数据访问控制方法是非常必要的。


技术实现要素:

[0004]
本发明的第一目的在于提供一种医疗大数据访问控制方法。
[0005]
本发明的第二目的在于提供一种医疗大数据访问控制装置。
[0006]
本发明的第三目的在于提供一种计算机可读存储介质。
[0007]
本发明的第一目的是这样实现的,包括以下步骤:
[0008]
s1、历史访问数据预处理:将医生按不同科室划分,依据icd-10编码给同一科室每一医生在一段时间内访问的历史医疗记录编码;若某医生的历史访问记录中的编码在该科
室对应的疾病编码中,则用“1”标注,若某医生的历史访问记录中的编码不在该科室对应的疾病编码中,则用“0”标注,然后将同一科室所有医生的标注转换成一个布尔矩阵,矩阵中不同的列表示医生访问的历史记录,行表示同一科室单个医生的访问历史医疗记录集合;
[0009]
s2、构建医生矩阵:
[0010]
医生的相似矩阵由医生之间的历史访问记录的相似度构成,设s
ij
为第i个医生和第j个医生之间的相似度,则医生相似矩阵s表示为:
[0011][0012]
其中相似度s
ij
通过距离度量函数计算得到;
[0013]
医生的邻接矩阵是以医生的相似矩阵为基础,通过全连接法构建得到,全连接法通过高斯核函数定义边权重,然后将医生邻接矩阵a表示为:
[0014][0015]
医生的拉普拉斯矩阵定义为:
[0016]
l=d-a,
[0017]
其中,a表示医生的邻接矩阵,d表示医生的度矩阵,且医生的度矩阵d每行的值为医生相似矩阵s每行值得和,即矩阵形式为:
[0018][0019]
s3:医生图的切割:采用谱聚类算法,把每个医生的历史访问记录作为图中的一个点,把医生历史访问记录间的相似度作为图中的边,如此构成的图为医生图,令v表示医生历史访问记录的集合,e表示医生间相似度的集合,即医生图g=(v,e),其中v是数据集里面所有的点,记为(d
1
,d
2
,

,d
n
);把同科室全部医生的历史访问记录作为图的顶点集合,把医生历史访问记录之间的相似度作为图的权值边集合;记医生图g=(v,e)被切成相互没有连接的k个医生子图,每个医生子图点的集合记为:g
1
,g
2

,g
k
,满足且g
1
∪g
2


∪g
k
=v;医生图按ncut法进行切割,得到每个医生近似的指示向量,公式如下:
[0020][0021]
其中,d-1/2
ld-1/2
是对医生的拉普拉斯矩阵l进行了标准化,f是d-1/2
ld-1/2
的最小k个特征值所各自对应的特征向量组成的标准化矩阵,即特征矩阵,i为单位阵,y为列拼接成的矩阵;
[0022]
再对指示向量进行k均值聚类,得到医生标签,即把同一科室医生聚类成诚实医生和恶意医生两种类型;
[0023]
s4、访问医疗记录的风险量化与医疗记录访问控制:首先把诚实医生或恶意医生的访问目标和请求访问记录根据icd-10编码进行标签,然后利用信息熵计算两种类型医生的风险值;设定访问控制周期性的计算风险阈值φ(t),该阈值φ(t)是由t段时间内,所有医生的平均风险值所决定,即:
[0024][0025]
其中,c(t)表示在t段时间内所有请求访问的医生的数量;
[0026]
令φ
di
=risk(d
i
,t
j
)-φ(t),即风险访问控制函数为:
[0027][0028]
其中,结果为1表示拒绝访问,0表示允许访问。
[0029]
本发明的第二目的是这样实现的,包括:
[0030]
历史访问数据预处理模块,用于将医生按不同科室划分,依据icd-10编码给同一科室每一医生在一段时间内访问的历史医疗记录编码;若某医生的历史访问记录中的编码在该科室对应的疾病编码中,则用“1”标注,若某医生的历史访问记录中的编码不在该科室对应的疾病编码中,则用“0”标注,然后将同一科室所有医生的标注转换成一个布尔矩阵,矩阵中不同的列表示医生访问的历史记录,行表示同一科室单个医生的访问历史医疗记录集合;
[0031]
医生矩阵构建模块,医生的相似矩阵由医生之间的历史访问记录的相似度构成,设s
ij
为第i个医生和第j个医生之间的相似度,则医生相似矩阵s表示为:
[0032][0033]
其中相似度s
ij
通过距离度量函数计算得到;
[0034]
医生的邻接矩阵是以医生的相似矩阵为基础,通过全连接法构建得到,全连接法通过高斯核函数定义边权重,然后将医生邻接矩阵a表示为:
[0035][0036]
医生的拉普拉斯矩阵定义为:
[0037]
l=d-a,
[0038]
其中,a表示医生的邻接矩阵,d表示医生的度矩阵,且医生的度矩阵d每行的值为医生相似矩阵s每行值得和,即矩阵形式为:
[0039][0040]
医生图切割模块,用于采用谱聚类算法,把每个医生的历史访问记录作为图中的一个点,把医生历史访问记录间的相似度作为图中的边,如此构成的图为医生图,令v表示医生历史访问记录的集合,e表示医生间相似度的集合,即医生图g=(v,e),其中v是数据集里面所有的点,记为(d
1
,d
2
,

,d
n
);把同科室全部医生的历史访问记录作为图的顶点集合,把医生历史访问记录之间的相似度作为图的权值边集合;记医生图g=(v,e)被切成相互没有连接的k个医生子图,每个医生子图点的集合记为:g
1
,g
2

,g
k
,满足且g
1
∪g
2


∪g
k
=v;医生图按ncut法进行切割,得到每个医生近似的指示向量,公式如下:
[0041][0042]
其中,d-1/2
ld-1/2
是对医生的拉普拉斯矩阵l进行了标准化,f是d-1/2
ld-1/2
的最小k个特征值所各自对应的特征向量组成的标准化矩阵,即特征矩阵,i为单位阵,y为列拼接成的矩阵;
[0043]
再对指示向量进行k均值聚类,得到医生标签,即把同一科室医生聚类成诚实医生和恶意医生两种类型;
[0044]
访问医疗记录的风险量化与医疗记录访问控制模块,用于首先把诚实医生或恶意医生的访问目标和请求访问记录根据icd-10编码进行标签,然后利用信息熵计算两种类型医生的风险值;设定访问控制周期性的计算风险阈值φ(t),该阈值φ(t)是由t段时间内,所有医生的平均风险值所决定,即:
[0045][0046]
其中,c(t)表示在t段时间内所有请求访问的医生的数量;
[0047]
令φ
di
=risk(d
i
,t
j
)-φ(t),即风险访问控制函数为:
[0048][0049]
其中,结果为1表示拒绝访问,0表示允许访问。
[0050]
本发明的第三目的是这样实现的,其上存储有计算机可读指令,所述计算机可读指令在被执行时实现所述的医疗大数据访问控制方法。
[0051]
与现有技术相比,本发明具有以下技术效果:
[0052]
1、本发明通过对医生历史访问数据预处理,然后通过构建医生矩阵以及进行医生图的切割,使用谱聚类把同科室医生聚成两类,即诚实医生和恶意医生,再根据信息熵计算不同分类医生请求访问记录的风险值,最后通过风险访问控制函数对风险值进行判断,并对医生的访问请求作出决策,以此控制医生对医疗数据的过度访问;本发明能精准控制医生的访问,降低医疗数据泄露的风险;
[0053]
2、本发明还包括访问工作目标的风险量化与工作目标访问控制步骤,使用权值求和的方法计算风险值,并为每个访问目标设定等级,确保在相同环境下,紧急级别的访问目标能够优先于普通、重要级别的访问目标访问,从而把医生为患者做初步诊断时可能造成的风险也进行控制,本发明为健康医疗大数据的访问控制研究提供了新的思路。
附图说明
[0054]
图1为划分医生类别的框架图;
[0055]
图2为访问医疗记录的风险量化算法示意图;
[0056]
图3为医疗记录访问控制函数框架图;
[0057]
图4为呼吸科医生历史访问记录情况及医生分类结果图;
[0058]
图5为呼吸科不同医生总数量的分类图;
[0059]
图6为呼吸科50位医生风险值示意图;
[0060]
图7为医生请求是否被允许访问图;
[0061]
图8为呼吸科访问请求风险图;
[0062]
图9为访问请求5次的性能指标对比图;
[0063]
图10为访问请求10次的性能指标对比图;
[0064]
图11为访问请求15次的性能指标对比图;
[0065]
图12为访问请求20次的性能指标对比图;
[0066]
图13为呼吸科过度访问风险图;
[0067]
图14为过度访问比例为2%的性能指标对比图;
[0068]
图15为过度访问比例为4%的性能指标对比图;
[0069]
图16为过度访问比例为6%的性能指标对比图;
[0070]
图17为过度访问比例为8%的性能指标对比图;
[0071]
图18为不同的恶意医生比例下的的风险值和性能指标值结果图。
具体实施方式
[0072]
下面结合附图对本发明作进一步的说明,但不以任何方式对本发明加以限制,基于本发明教导所作的任何变换或替换,均属于本发明的保护范围。
[0073]
如附图1~图18所示本发明包括以下步骤:
[0074]
s1、历史访问数据预处理:将医生按不同科室划分,依据icd-10编码给同一科室每一医生在一段时间内访问的历史医疗记录编码;若某医生的历史访问记录中的编码在该科室对应的疾病编码中,则用“1”标注,若某医生的历史访问记录中的编码不在该科室对应的疾病编码中,则用“0”标注,然后将同一科室所有医生的标注转换成一个布尔矩阵,矩阵中不同的列表示医生访问的历史记录,行表示同一科室单个医生的访问历史医疗记录集合;
[0075]
s2、构建医生矩阵:
[0076]
医生的相似矩阵由医生之间的历史访问记录的相似度构成,设s
ij
为第i个医生和第j个医生之间的相似度,则医生相似矩阵s表示为:
[0077][0078]
其中相似度s
ij
通过距离度量函数计算得到;
[0079]
医生的邻接矩阵是以医生的相似矩阵为基础,通过全连接法构建得到,全连接法通过高斯核函数定义边权重,然后将医生邻接矩阵a表示为:
[0080][0081]
使用全连接法构建的医生邻接矩阵a中,所有的点(医生)之间权重值都大于0;
[0082]
医生的拉普拉斯矩阵定义为:
[0083]
l=d-a,
[0084]
其中,a表示医生的邻接矩阵,d表示医生的度矩阵,且医生的度矩阵d每行的值为医生相似矩阵s每行值得和,即矩阵形式为:
[0085][0086]
拉普拉斯矩阵的性质:
[0087]
(1)度矩阵和邻接矩阵都为对称矩阵,故拉普拉斯矩阵也为对称阵;
[0088]
(2)拉普拉斯矩阵是对称矩阵,则它的所有的特征值都是实数;
[0089]
(3)对于任意的向量f,有:
[0090][0091]
(4)拉普拉斯矩阵是半正定矩阵,且对应的n个实数特征值都大于等于0,即0=λ
1
≤λ
2


≤λ
n
,且最小的特征值为0;
[0092]
s3:医生图的切割:采用谱聚类算法,把每个医生的历史访问记录作为图中的一个点,把医生历史访问记录间的相似度作为图中的边,如此构成的图为医生图,令v表示医生历史访问记录的集合,e表示医生间相似度的集合,即医生图g=(v,e),其中v是数据集里面所有的点,记为(d
1
,d
2
,

,d
n
);把同科室全部医生的历史访问记录作为图的顶点集合,把医生历史访问记录之间的相似度作为图的权值边集合;记医生图g=(v,e)被切成相互没有连接的k个医生子图,每个医生子图点的集合记为:g
1
,g
2

,g
k
,满足且g
1
∪g
2


∪g
k
=v;医生图按ncut法进行切割,得到每个医生近似的指示向量,公式如下:
[0093]
[0094]
其中,d-1/2
ld-1/2
是对医生的拉普拉斯矩阵l进行了标准化,f是d-1/2
ld-1/2
的最小k个特征值所各自对应的特征向量组成的标准化矩阵,即特征矩阵,i为单位阵,y为列拼接成的矩阵;通过本发明的切割方法将医生图切割最优解问题转化为优化问题求得近似解;
[0095]
再对指示向量进行k均值聚类,得到医生标签,即把同一科室医生聚类成诚实医生和恶意医生两种类型;
[0096]
s4、访问医疗记录的风险量化与医疗记录访问控制:首先把诚实医生或恶意医生的访问目标和请求访问记录根据icd-10编码进行标签,然后利用信息熵计算两种类型医生的风险值;设定访问控制周期性的计算风险阈值φ(t),该阈值φ(t)是由t段时间内,所有医生的平均风险值所决定,即:
[0097][0098]
其中,c(t)表示在t段时间内所有请求访问的医生的数量;
[0099]
令φ
di
=risk(d
i
,t
j
)-φ(t),即风险访问控制函数为:
[0100][0101]
其中,结果为1表示拒绝访问,0表示允许访问。
[0102]
访问控制具体算法如下:
[0103]
[0104][0105]
icd-10是国际疾病分类(international classification of diseases,icd)的第10次修订本。icd-10将一个疾病或一组疾病表示成字母和数字形式实现数据存储、检索、分析和利用。icd-10主要包括icd-10编码、手术码、疾病名称、拼音码,并且支持疾病、类别的双向查询,拼音与汉字模糊查询等。
[0106]
ncut(normalized cut)切割法公式推导过程如下:
[0107]
对每个切图,ncut方法不仅考虑mincut(g
1
,g
2


,g
k
),同时还考虑医生子图中医生权重(即相似度),因为医生子图中医生数目多不代表权重就大(即相似性高),因此切图时基于权重更符合目标;ncut目标函数定义为:
[0108][0109]
其中vol(g
i
)表示医生子图g
i
的权重;
[0110]
接着优化ncut函数,首先引入指示向量(indicator vector)y
j
∈{y
1
,y
1


,y
k
}j=1,2,...,k,对于任意一个向量y
j
,它是一个n维向量(n为医生个数),令:
[0111][0112]
可以得到:
[0113][0114]
令y为列拼接成的矩阵,则有:
[0115]
(1)
[0116]
(2)y
t
dy=i;
[0117]
所以,
[0118][0119]
故,优化目标转化为:
[0120][0121]
此时,y中的指示向量y并不是标准正交基,因此不能直接进行降维,需要将指示向量矩阵y进行转化;
[0122]
令y=d-1/2
f,则
[0123]
y
t
ly=f
t
d-1/2
ld-1/2
f,
[0124]
约束条件的取值范围松弛为实数范围:
[0125]
y
t
dy=f
t
f=i,
[0126]
故,优化目标最终转化为:
[0127][0128]
其中,d-1/2
ld-1/2
是对医生的拉普拉斯矩阵l进行了标准化,f是d-1/2
ld-1/2
的最小k个特征值所各自对应的特征向量组成的标准化矩阵,即特征矩阵,i为单位阵,y为列拼接成的矩阵。
[0129]
优选地,s1步骤在得到布尔矩阵后,将同一科室不同医生的相同历史访问记录进行合并,得到去除重复历史访问记录的矩阵。
[0130]
优选地,s2步骤距离度量函数的公式为:
[0131][0132]
其中,x为集合{x
1
,x
2
,

,x
n
},y为集合{y
1
,y
2
,

,y
n
},x、y分别代表不同的医生,x
i
代表医生x的第i次访问记录,y
i
代表医生y的第i次访问记录。
[0133]
优选地,s2步骤高斯核函数的公式为:
[0134][0135]
其中,s
i
和s
j
为医生相似矩阵s的第i行和第j行。
[0136]
优选地,s4步骤风险值的计算过程具体是先记医生的一次访问行为信息为三元组
<d
i
,t
i
,m
i
>,其中d
i
∈d,d表示医生集合;t
j
∈t
i
,t
i
是医生d
i
在过去一段时间内访问请求中的一组访问目的;m表示医疗记录的集合;在对医生d
i
的访问行为进行分析时,对于每个目的t
j
∈t
i
,令s(d
i
,t
j
)为过去期间d
i
为目的t
j
请求记录的标签序列,其中医生d
i
在s3步骤已确定医生类型;在患者医疗记录中,根据访问医疗记录的标签进行设定,用l
k
表示其中某一类数据的标签且l
k
∈l,l表示所有的医疗记录标签的分类,用f
di
(l
k
,t
j
)表示访问目的为t
j
并且医疗记录标签为l
k
的医疗记录出现的次数,通过该次数计算出诚实医生或恶意医生因该工作目的t
j
访问医疗记录标签l
k
的概率p(l
k
|t
j
d
i
),即:
[0137][0138]
l
b
表示在该访问目标下所有的医疗记录标签,根据信息熵公式,得出医生d
i
在访问目的下得到的信息量为以下公式所示:
[0139][0140]
按上述相同的方法,在历史访问医疗记录中,得到相同访问目的t
j
的所有医生d
all
的访问记录,并得到d
all
的平均信息量,公式为:
[0141][0142]
其中,h
all
(t
j
)表示d
all
信息量的总和,c(d
all
)表示医疗系统中医生的数量,通过比较d
i
和d
all
的信息量,得到在相同访问目标t
j
之下的差值,即在该访问目标t
j
下选择医疗记录造成的风险值,公式为:
[0143][0144]
然后,周期性的对医生的所有访问目的进行求和,根据以下公式计算出该医生的风险值:
[0145][0146]
优选地,s3与s4步骤之间还包括访问工作目标的风险量化与工作目标访问控制步骤,具体是设医生工作目标分别为workobjective
1
、workobjective
2


、workobjective
n
,对每个工作目标划分风险等级,风险等级是从0级到9级,即对于i∈n
+
且i∈[1,n],workobjective1∈[0,9],其权值为weight
1
、weight
2


、weight
n
,则当前医生访问工作目标的风险值riskvalue
wo
的计算公式为:
[0147][0148]
其中,
[0149]
设普通级别的工作目标风险权值为w
1i
,其中l∈n
+
且i∈[1,n],n表示医生给同一患者诊断过程中需访问工作目标的个数;重要级别的工作目标风险权值为w
2j
,其中j∈n
+
且j∈[1,n];紧急级别的工作目标风险权值为w
3k
,其中k∈n
+
且k∈[1,n],风险值的计算约束条件定义为:其中m∈{1,2,3},表示工作目标重要性级别{普通,重要,紧急},并且即所有重要级别的工作目标的权值大于普通工作目标的最大权值,所有紧急级别的工作目标的权值小于普通级别的工作目标的权值;对于所有的权值w
mi
∈[0,1],有和关系不等式成立,相同环境下,紧急、普通、重要等级的工作目标的风险值的关系递增,即:
[0150][0151][0152]
令访问工作目标的风险阈值令访问工作目标的风险阈值其中,是t时间内医生访问工作目标的平均风险值,则工作目标的风险访问控制函数为:
[0153][0154]
其中,结果为1表示拒绝访问,0表示允许访问;
[0155]
工作目标访问控制是使用工作目标访问控制函数判断该阶段医生允许或拒绝访问,具体是:
[0156]
若医生访问工作目标的风险值riskvalue
wo
大于风险阈值且工作目标等级为紧急,则允许访问,但在下一周期分配访问配额时,该医生的访问配额会减少;若医生访问工作目标的风险值riskvalue
wo
大于风险阈值,但工作目标等级为普通或重要,则拒绝访问;若医生访问工作目标的风险值riskvalue
wo
小于等于风险阈值,此时不需要考虑工作目标等级,允许访问。
[0157]
医疗大数据访问控制装置,包括:
[0158]
历史访问数据预处理模块,用于将医生按不同科室划分,依据icd-10编码给同一科室每一医生在一段时间内访问的历史医疗记录编码;若某医生的历史访问记录中的编码在该科室对应的疾病编码中,则用“1”标注,若某医生的历史访问记录中的编码不在该科室对应的疾病编码中,则用“0”标注,然后将同一科室所有医生的标注转换成一个布尔矩阵,矩阵中不同的列表示医生访问的历史记录,行表示同一科室单个医生的访问历史医疗记录集合;
[0159]
医生矩阵构建模块,医生的相似矩阵由医生之间的历史访问记录的相似度构成,设s
ij
为第i个医生和第j个医生之间的相似度,则医生相似矩阵s表示为:
[0160][0161]
其中相似度s
ij
通过距离度量函数计算得到;
[0162]
医生的邻接矩阵是以医生的相似矩阵为基础,通过全连接法构建得到,全连接法通过高斯核函数定义边权重,然后将医生邻接矩阵a表示为:
[0163][0164]
医生的拉普拉斯矩阵定义为:
[0165]
l=d-a,
[0166]
其中,a表示医生的邻接矩阵,d表示医生的度矩阵,且医生的度矩阵d每行的值为医生相似矩阵s每行值得和,即矩阵形式为:
[0167][0168]
医生图切割模块,用于采用谱聚类算法,把每个医生的历史访问记录作为图中的一个点,把医生历史访问记录间的相似度作为图中的边,如此构成的图为医生图,令v表示医生历史访问记录的集合,e表示医生间相似度的集合,即医生图g=(v,e),其中v是数据集里面所有的点,记为(d
1
,d
2
,

,d
n
);把同科室全部医生的历史访问记录作为图的顶点集合,把医生历史访问记录之间的相似度作为图的权值边集合;记医生图g=(v,e)被切成相互没有连接的k个医生子图,每个医生子图点的集合记为:g
1
,g
2

,g
k
,满足且g
1
∪g
2


∪g
k
=v;医生图按ncut法进行切割,得到每个医生近似的指示向量,公式如下:
[0169][0170]
其中,d-1/2
ld-1/2
是对医生的拉普拉斯矩阵l进行了标准化,f是d-1/2
ld-1/2
的最小k个特征值所各自对应的特征向量组成的标准化矩阵,即特征矩阵,i为单位阵,y为列拼接成的矩阵;
[0171]
再对指示向量进行k均值聚类,得到医生标签,即把同一科室医生聚类成诚实医生和恶意医生两种类型;
[0172]
访问医疗记录的风险量化与医疗记录访问控制模块,用于首先把诚实医生或恶意医生的访问目标和请求访问记录根据icd-10编码进行标签,然后利用信息熵计算两种类型医生的风险值;设定访问控制周期性的计算风险阈值φ(t),该阈值φ(t)是由t段时间内,所有医生的平均风险值所决定,即:
[0173][0174]
其中,c(t)表示在t段时间内所有请求访问的医生的数量;
[0175]
令φ
di
=risk(d
i
,t
j
)-φ(t),即风险访问控制函数为:
[0176][0177]
其中,结果为1表示拒绝访问,0表示允许访问。
[0178]
计算机可读存储介质,其上存储有计算机可读指令,所述计算机可读指令在被执行时实现所述的医疗大数据访问控制方法。
[0179]
下面结合实施例1~实施例3对本发明作进一步说明。
[0180]
实施例1
[0181]
s1、历史访问数据预处理:将医生按不同科室划分,依据icd-10编码给同一科室每一医生在一段时间内访问的历史医疗记录编码;若某医生的历史访问记录中的编码在该科室对应的疾病编码中,则用“1”标注,若某医生的历史访问记录中的编码不在该科室对应的疾病编码中,则用“0”标注,然后将同一科室所有医生的标注转换成一个布尔矩阵,矩阵中不同的列表示医生访问的历史记录,行表示同一科室单个医生的访问历史医疗记录集合;
[0182]
s2、构建医生矩阵:
[0183]
医生的相似矩阵由医生之间的历史访问记录的相似度构成,设s
ij
为第i个医生和第j个医生之间的相似度,则医生相似矩阵s表示为:
[0184][0185]
其中相似度s
ij
通过距离度量函数计算得到;
[0186]
医生的邻接矩阵是以医生的相似矩阵为基础,通过全连接法构建得到,全连接法通过高斯核函数定义边权重,然后将医生邻接矩阵a表示为:
[0187][0188]
使用全连接法构建的医生邻接矩阵a中,所有的点(医生)之间权重值都大于0;
[0189]
医生的拉普拉斯矩阵定义为:
[0190]
l=d-a,
[0191]
其中,a表示医生的邻接矩阵,d表示医生的度矩阵,且医生的度矩阵d每行的值为医生相似矩阵s每行值得和,即矩阵形式为:
[0192][0193]
拉普拉斯矩阵的性质:
[0194]
(1)度矩阵和邻接矩阵都为对称矩阵,故拉普拉斯矩阵也为对称阵;
[0195]
(2)拉普拉斯矩阵是对称矩阵,则它的所有的特征值都是实数;
[0196]
(3)对于任意的向量f,有:
[0197][0198]
(4)拉普拉斯矩阵是半正定矩阵,且对应的n个实数特征值都大于等于0,即0=λ
1
≤λ
2


≤λ
n
,且最小的特征值为0;
[0199]
s3:医生图的切割:采用谱聚类算法,把每个医生的历史访问记录作为图中的一个点,把医生历史访问记录间的相似度作为图中的边,如此构成的图为医生图,令v表示医生历史访问记录的集合,e表示医生间相似度的集合,即医生图g=(v,e),其中v是数据集里面所有的点,记为(d
1
,d
2
,

,d
n
);把同科室全部医生的历史访问记录作为图的顶点集合,把医生历史访问记录之间的相似度作为图的权值边集合;记医生图g=(v,e)被切成相互没有连接的k个医生子图,每个医生子图点的集合记为:g
1
,g
2

,g
k
,满足且g
1
∪g
2


∪g
k
=v;医生图按ncut法进行切割,得到每个医生近似的指示向量,公式如下:
[0200][0201]
其中,d-1/2
ld-1/2
是对医生的拉普拉斯矩阵l进行了标准化,f是d-1/2
ld-1/2
的最小k个特征值所各自对应的特征向量组成的标准化矩阵,即特征矩阵,i为单位阵,y为列拼接成的矩阵;通过本发明的切割方法将医生图切割最优解问题转化为优化问题求得近似解;
[0202]
再对指示向量进行k均值聚类,得到医生标签,即把同一科室医生聚类成诚实医生和恶意医生两种类型;
[0203]
s4、访问医疗记录的风险量化与医疗记录访问控制:首先把诚实医生或恶意医生的访问目标和请求访问记录根据icd-10编码进行标签,然后利用信息熵计算两种类型医生的风险值;设定访问控制周期性的计算风险阈值φ(t),该阈值φ(t)是由t段时间内,所有医生的平均风险值所决定,即:
[0204][0205]
其中,c(t)表示在t段时间内所有请求访问的医生的数量;
[0206]
令φ
di
=risk(d
i
,t
j
)-φ(t),即风险访问控制函数为:
[0207]
[0208]
其中,结果为1表示拒绝访问,0表示允许访问。
[0209]
实施例2
[0210]
s1、历史访问数据预处理:将医生按不同科室划分,依据icd-10编码给同一科室每一医生在一段时间内访问的历史医疗记录编码;若某医生的历史访问记录中的编码在该科室对应的疾病编码中,则用“1”标注,若某医生的历史访问记录中的编码不在该科室对应的疾病编码中,则用“0”标注,然后将同一科室所有医生的标注转换成一个布尔矩阵,矩阵中不同的列表示医生访问的历史记录,行表示同一科室单个医生的访问历史医疗记录集合;在得到布尔矩阵后,将同一科室不同医生的相同历史访问记录进行合并,得到去除重复历史访问记录的矩阵;
[0211]
s2、构建医生矩阵:
[0212]
医生的相似矩阵由医生之间的历史访问记录的相似度构成,设s
ij
为第i个医生和第j个医生之间的相似度,则医生相似矩阵s表示为:
[0213][0214]
其中相似度s
ij
通过距离度量函数计算得到,距离度量函数的公式为:
[0215][0216]
其中,x为集合{x
1
,x
2
,

,x
n
},y为集合{y
1
,y
2
,

,y
n
},x、y分别代表不同的医生,x
i
代表医生x的第i次访问记录,y
i
代表医生y的第i次访问记录;
[0217]
医生的邻接矩阵是以医生的相似矩阵为基础,通过全连接法构建得到,全连接法通过高斯核函数定义边权重,高斯核函数的公式为:
[0218][0219]
其中,s
i
和s
j
为医生相似矩阵s的第i行和第j行,
[0220]
然后将医生邻接矩阵a表示为:
[0221][0222]
使用全连接法构建的医生邻接矩阵a中,所有的点(医生)之间权重值都大于0;
[0223]
医生的拉普拉斯矩阵定义为:
[0224]
l=d-a,
[0225]
其中,a表示医生的邻接矩阵,d表示医生的度矩阵,且医生的度矩阵d每行的值为医生相似矩阵s每行值得和,即矩阵形式为:
[0226][0227]
拉普拉斯矩阵的性质:
[0228]
(1)度矩阵和邻接矩阵都为对称矩阵,故拉普拉斯矩阵也为对称阵;
[0229]
(2)拉普拉斯矩阵是对称矩阵,则它的所有的特征值都是实数;
[0230]
(3)对于任意的向量f,有:
[0231][0232]
(4)拉普拉斯矩阵是半正定矩阵,且对应的n个实数特征值都大于等于0,即0=λ
1
≤λ
2


≤λ
n
,且最小的特征值为0;
[0233]
s3:医生图的切割:采用谱聚类算法,把每个医生的历史访问记录作为图中的一个点,把医生历史访问记录间的相似度作为图中的边,如此构成的图为医生图,令v表示医生历史访问记录的集合,e表示医生间相似度的集合,即医生图g=(v,e),其中v是数据集里面所有的点,记为(d
1
,d
2
,

,d
n
);把同科室全部医生的历史访问记录作为图的顶点集合,把医生历史访问记录之间的相似度作为图的权值边集合;记医生图g=(v,e)被切成相互没有连接的k个医生子图,每个医生子图点的集合记为:g
1
,g
2

,g
k
,满足且g
1
∪g
2


∪g
k
=v;医生图按ncut法进行切割,得到每个医生近似的指示向量,公式如下:
[0234][0235]
其中,d-1/2
ld-1/2
是对医生的拉普拉斯矩阵l进行了标准化,f是d-1/2
ld-1/2
的最小k个特征值所各自对应的特征向量组成的标准化矩阵,即特征矩阵,i为单位阵,y为列拼接成的矩阵;通过本发明的切割方法将医生图切割最优解问题转化为优化问题求得近似解;
[0236]
再对指示向量进行k均值聚类,得到医生标签,即把同一科室医生聚类成诚实医生和恶意医生两种类型;
[0237]
s4、访问工作目标的风险量化与工作目标访问控制:设医生工作目标分别为workobjective
1
、workobjective
2


、workobjective
n
,对每个工作目标划分风险等级,风险等级是从0级到9级,即对于i∈n
+
且i∈[1,n],workobjective1∈[0,9],其权值为weight
1
、weight
2


、weight
n
,则当前医生访问工作目标的风险值riskvalue
wo
的计算公式为:
[0238][0239]
其中,
[0240]
设普通级别的工作目标风险权值为w
1i
,其中i∈n
+
且i∈[1,n],n表示医生给同一
患者诊断过程中需访问工作目标的个数;重要级别的工作目标风险权值为w
2j
,其中j∈n
+
且j∈[1,n];紧急级别的工作目标风险权值为w
3k
,其中k∈n
+
且k∈[1,n],风险值的计算约束条件定义为:其中m∈{1,2,3},表示工作目标重要性级别{普通,重要,紧急},并且即所有重要级别的工作目标的权值大于普通工作目标的最大权值,所有紧急级别的工作目标的权值小于普通级别的工作目标的权值;对于所有的权值w
mi
∈[0,1],有和关系不等式成立,相同环境下,紧急、普通、重要等级的工作目标的风险值的关系递增,即:
[0241][0242][0243]
令访问工作目标的风险阈值令访问工作目标的风险阈值其中,是t时间内医生访问工作目标的平均风险值,则工作目标的风险访问控制函数为:
[0244][0245]
其中,结果为1表示拒绝访问,0表示允许访问;
[0246]
工作目标访问控制是使用工作目标访问控制函数判断该阶段医生允许或拒绝访问,具体是:
[0247]
若医生访问工作目标的风险值riskvalue
wo
大于风险阈值且工作目标等级为紧急,则允许访问,但在下一周期分配访问配额时,该医生的访问配额会减少;若医生访问工作目标的风险值riskvalue
wo
大于风险阈值,但工作目标等级为普通或重要,则拒绝访问;若医生访问工作目标的风险值riskvalue
wo
小于等于风险阈值,则允许访问;
[0248]
s5、访问医疗记录的风险量化与医疗记录访问控制:首先把诚实医生或恶意医生的访问目标和请求访问记录根据icd-10编码进行标签,然后利用信息熵计算两种类型医生的风险值;风险值的计算过程具体是先记医生的一次访问行为信息为三元组<d
i
,t
i
,m
i
>,其中d
i
∈d,d表示医生集合;t
j
∈t
i
,t
i
是医生d
i
在过去一段时间内访问请求中的一组访问目的;的;m表示医疗记录的集合;在对医生d
i
的访问行为进行分析时,对于每个目的t
j
∈t
i
,令s(d
i
,t
j
)为过去期间d
i
为目的t
j
请求记录的标签序列,其中医生d
i
在s3步骤已确定医生类型;在患者医疗记录中,根据访问医疗记录的标签进行设定,用l
k
表示其中某一类数据的标签且l
k
∈l,l表示所有的医疗记录标签的分类,用f
di
(l
k
,t
j
)表示访问目的为t
j
并且医疗记录标签为l
k
的医疗记录出现的次数,通过该次数计算出诚实医生或恶意医生因该工作目的t
j
访问医疗记录标签l
k
的概率p(l
k
|t
j
d
i
),即:
[0249][0250]
l
b
表示在该访问目标下所有的医疗记录标签,根据信息熵公式,得出医生d
i
在访问目的下得到的信息量为以下公式所示:
[0251][0252]
按上述相同的方法,在历史访问医疗记录中,得到相同访问目的t
j
的所有医生d
all
的访问记录,并得到d
all
的平均信息量,公式为:
[0253][0254]
其中,h
all
(t
j
)表示d
all
信息量的总和,c(d
all
)表示医疗系统中医生的数量,通过比较d
i
和d
all
的信息量,得到在相同访问目标t
j
之下的差值,即在该访问目标t
j
下选择医疗记录造成的风险值,公式为:
[0255][0256]
然后,周期性的对医生的所有访问目的进行求和,根据以下公式计算出该医生的风险值:
[0257][0258]
设定访问控制周期性的计算风险阈值φ(t),该阈值φ(t)是由t段时间内,所有医生的平均风险值所决定,即:
[0259][0260]
其中,c(t)表示在t段时间内所有请求访问的医生的数量;
[0261]
令φ
di
=risk(d
i
,t
j
)-φ(t),即风险访问控制函数为:
[0262][0263]
其中,结果为1表示拒绝访问,0表示允许访问。
[0264]
实施例3:模拟测试实验
[0265]
从某医院获得实验数据,数据类型有文本数据、图像数据及影像数据等。根据本发明方法实验测试的需求,只从数据中抽取部分数据用于实验;
[0266]
实验设置:按本发明的方法把医生分为两类,然后模拟两类医生的访问请求,计算并比较两类医生的平均风险值,观察诚实医生的风险值是否远低于恶意医生的风险值;
[0267]
在模拟实验中,我们把同科室的医生根据他们的历史访问记录划分为诚实医生和
恶意医生,把没有访问历史记录的医生设置为诚实医生,并使用z、z
i
表示icd-10疾病编码的层次结构,其中z表示icd-10所用主要类别的集合;和都表示icd-10的主要类别,他们之间的关系为且z
i
表示icd-10的子类别,有在该实验中,我们用标识医生科室,使用z
i
标识历史访问记录。我们假设恶意医生随机选择请求访问记录的概率为α
1
,诚实医生随机选择请求访问记录的概率为1-α
1
,其中参数α
1
是过分访问概率;
[0268]
实验选取了呼吸科的医生,首先对医生分类做了仿真实验,目的是把同科室的医生分为两类,接着计算了诚实医生和恶意医生的平均风险值,如果本发明方法有效,两类医生的平均风险值应该差别较大,这样本发明方法才能够很好地决定医生的请求访问记录是否被允许;
[0269]
本实验是对同一科室医生进行分类,首先把呼吸科的医生进行分类,然后计算每个医生的风险值;表1为呼吸科50位医生在一段时间内的历史访问记录;
[0270]
表1呼吸科50位医生的历史访问记录
[0271][0272]
之后,把该记录转化成布尔矩阵:
[0273][0274]
然后把矩阵a作为谱聚类算法的输入,构建医生的相似矩阵、邻接矩阵、拉普拉斯矩阵以及度矩阵,度矩阵d为:
[0275][0276]
采用谱聚类算法,构建医生图,然后按ncut法对医生图切割,求解拉普拉斯矩阵最
小的2个特征值对应的特征向量ev,
[0277][0278][0279]
特征向量ev即为指示向量,使用指示向量构成样本点的新特征,再利用k-means算法(k均值聚类算法)对新数据特征空间中的点进行聚类,得到医生分类,分类结果见图4。
[0280]
然后对上述医生分类结果的准确性进行验证,在呼吸科使用不同医生总数量进行测试,医生总数量分别为10、20、30、40、50,结果见图5,由图5可知,在同一科室内即使分类医生数量不同谱聚类算法也能准确的把医生分为诚实医生和恶意医生。
[0281]
访问医疗记录的风险量化与医疗记录访问控制实验:由医生分类实验可知呼吸科50位医生中有45位医生为诚实医生,5位医生为恶意医生;根据医生分类,计算出50位医生的风险值,具体风险值见表2、图6所示;
[0282]
表2呼吸科50位医生具体风险值
[0283][0284]
从图6观察发现恶意医生的风险值比诚实医生的风险值至少高出2倍,因此可以很清楚的区分诚实医生和恶意医生。
[0285]
得到医生的风险值,进一步计算出风险阈值φ(t),之后由访问控制函数决定医生的请求是否被允许;图7为医生请求是否被允许访问图;
[0286]
根据访问控制函数,表示拒绝访问,表示允许访问。观察图7,为负值的45位诚实医生的请求获得允许,为正值的5位恶意医生的请求被拒绝。
[0287]
测试实验的结果分析:
[0288]
(1)不同记录请求数目的实验结果
[0289]
本次实验目的是在不同的记录请求数目下,评估本发明方法的性能;首先呼吸科有50名医生,根据医生分类得到呼吸科的50名医生中4个恶意医生,46名诚实医生;过度访问的比例设定为10%;实验结果如图8所示;
[0290]
由图8可知,诚实医生的平均风险值与恶意医生的平均风险值相差1.6至2.2倍,由此可以说明本发明方法是有效的;并且从图8中可以看出,诚实医生随着访问请求次数的增
加风险值下降且趋于稳定;
[0291]
之后,我们选取800医生(不分科室),其中80名医生为恶意医生,其他医生为诚实医生,过度访问的比例仍设定为10%,再次对本发明方法进行了评估,结果如图9~图12所示;
[0292]
由图9~图12可知,在该实验中,风险值最高的前10名医生中,恶意医生所占比例为100%,并且在风险值最高的前50名医生中,本发明方法的准确率也达到了80%以上;从召回率分析得到,随着访问数目的增加,风险值最高的前50名医生中至少有82%为恶意医生;另外,本发明方法的总体性能f1值也是随着访问数目的增加而提升,因为数据越多算法越能准确学习医生的访问行为,使本发明方法更好的进行医生分类及计算医生风险值。
[0293]
(2)不同过度访问比例的实验结果
[0294]
本次实验目的是在不同的过度访问比例下,评估本发明方法的性能;首先呼吸科有50名医生,根据医生分类得到呼吸科的50名医生中4个恶意医生,46名诚实医生;请求访问记录的数目设定为20;实验结果如图13所示。
[0295]
由图13可知,诚实医生的平均风险值与恶意医生的平均风险值相差1.3至3.34倍,该实验证明本发明方法是有效的。
[0296]
之后,我们选取800医生(不分科室)对本发明方法进行测试,其中80名医生为恶意医生,其他医生为诚实医生,请求访问记录的数目仍然设定为20,再次对本发明方法进行了评估,结果如图14~图17所示。
[0297]
从图14~图17对比中分析得到,在恶意医生的过度访问比例为6%时,本发明方法已经呈现很好的效果,当过度访问比例为6%或高于6%,且恶意医生数量比例为50的情况下,本发明方法的准确率达到95%,召回率达到80%。对比图16、图17可以发现,3种性能指标值几乎没有变化,说明在恶意医生的过度访问比例为6%时,本发明方法的性能趋于稳定。从图14~图17整体分析,本发明方法的性能随着恶意医生过度访问比例的增加而不断改善。
[0298]
(3)不同的恶意医生数量的实验结果
[0299]
在本次实验中,通过不同的恶意医生数量测试本发明方法的性能,选取800名医生(不分科室)测试本发明方法,并设定医生访问不相关医疗数据的概率为0.05,每位医生访问请求的数目为10。由于在该实验中,只是基于恶意医生不同数量的比较,故实验中计算的准确率、召回率、f1值在一定比例下是相同的。实验结果如图18所示:
[0300]
如图18所示,恶意医生的风险值是诚实医生的2.3至2.7倍,说明本发明方法可以有效的区分诚实医生和恶意医生。从图可以看到,3个性能指标的值呈现上升趋势,表明本发明方法的性能在恶意医生所占比例增加的情况下也在提升。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1