大医疗数据背景下基于云架构的家庭诊断服务.docx
- 文档编号:6580071
- 上传时间:2023-01-08
- 格式:DOCX
- 页数:29
- 大小:1.47MB
大医疗数据背景下基于云架构的家庭诊断服务.docx
《大医疗数据背景下基于云架构的家庭诊断服务.docx》由会员分享,可在线阅读,更多相关《大医疗数据背景下基于云架构的家庭诊断服务.docx(29页珍藏版)》请在冰豆网上搜索。
大医疗数据背景下基于云架构的家庭诊断服务
大医疗数据背景下基于云架构的家庭诊断服务
摘要:
自我护理服务在我们的日常生活中正变得越来越重要,特别是在面临全球老龄化这样紧迫的情况下。
大量的历史医疗记录这样的大数据使得用户进行自我护理服务成为可能,例如他们自己就可以通过类似的病人的病例来获得诊断。
发展这样一种自我护理的服务就会面临很多挑战包括高并发和可扩展的的医疗记录的检索,数据分析,以及隐私的保护。
在本文中,我们提出了一个基于云计算的架构来实现自我护理服务称为家庭诊断以解决上述挑战。
具体而言,一个基于Lucene的分布式搜索集群被设计出来旨在支持高并发和可扩展的病历检索,数据分析和隐私保护。
此外,为了加快医疗记录检索,Hadoop集群被采用以存储离线数据以及构建索引。
当谈及家庭诊断服务的实现,我们可以从中获得相似的历史医疗记录和疾病症状点阵,以帮助用户查明他们可能感染了哪一种疾病。
最后,一个原型系统会被设计出来以及一个运行实例会被呈现以证明我们的提案的扩展性以及效率。
关键词:
基于云计算的架构,家庭诊断服务,医疗大数据
1介绍
1.1背景
根据世界卫生组织的报告,人们在亚健康状态(SHS),也被称为“第三状态”(处于健康和生病之间),在世界人口中占75%(Heetal.,2013)。
在中国,处于这个状态的人群数量已经达到了9亿人(Dingetal.,2009)。
有相当一部分人会密切关注他们的健康希望能获得预防性健康检查或以有类似病历的病人来指导自己。
而且,随着人口老龄化的成长,有些为老年人的慢性疾病监测也应在日常生活中进行。
因此,为了满足“SHS”群体和人口老龄化的需求,按需自助服务应该被发展以帮助人们可以在家方便地获得疾病预防知识。
(RashidiandCook,2009;Cooketal.,2003;Doctoretal.,2005).
另一方面,不断增加的在日常临床活动所产生的医疗和诊断数据量,使得开展医疗自助服务来满足SHS人群和老年人的要求成为可能。
然而,大量的医疗数据,以及它的各种格式,造成大规模数据管理和高效的知识挖掘技术的挑战,这也被称为“大数据”的问题。
(Chaudhuri,2012).由于云计算的显着特征,如弹性计算能力,和普遍的面向服务的性质(Shangetal.,2013;Xuetal.,2012),云计算技术已被广泛研究,并在大数据领域使用(CannyandZhao,2013;Chengetal.,2012),许多医疗保健服务已经迁移到云环境。
更具体来说,本文提出的研究报告是为连云港卫生局建立一个基于大型研究项目的医疗信息云平台。
连云港是中国江苏省的一个城市,靠近上海。
卫生局是要搭建一个平台,以收集所有的医疗信息,如每个来自当地保健医师的医疗记录。
(例如,医院,诊所)。
通过这样做,各种医疗服务可以被制定以符合实际的医疗保健需求。
例如,每个病人可具有他/她的个人健康简况,由所有他/她的临床与每个临床访问相关联的记录组成。
1.2一个生动的例子
我们讨论这个生动的例子是为了突出我们将要提出的问题。
假设有一个名叫李某的患者,有一天生病了。
并且他知道他的症状包括“高烧”和“呼吸困难”。
他去医院进行诊断之前,希望通过互联网初步诊断,这样就能知道他可能患有哪种疾病。
因此,他可以在事先通过医院的主页作出合适的预约。
在上面的例子中,如果有一个医疗自助服务,根据李某的疾病症状提供相似的历史医疗记录这样的诊断协助,这将有助于李某做出合适的预约。
此外,有相似的历史病历,李某会对他的病情更详细的了解。
因此,当李某去医院进行诊断时,将花费李和医生双方更少的时间做出正确的处理,从而提高诊断效率。
然而问题出现了,就是如何去提供这样一种自我保健服务。
具体来说,这个问题主要包含以下三点。
第一点是如何根据李某的疾病症状在大规模和不断增加的医疗记录中提供实时在线医疗记录检索。
另一个是如何提取有用的诊断知识来帮助李从大量检索出来的医疗记录中弄清楚可能感染了什么疾病。
最后一个是如何避免在病历隐私信息曝光,因为医疗记录是隐私的、敏感的。
1.3我们的工作和贡献
通过这些观察,在本文中,我们将通过以下工作来面对这些挑战。
(1)在本文中我们提出了一个基于云的框架来实现一个名为家庭诊断的自我保健服务。
具体来说,一个分布式基于Lucene搜索集群被设计出来旨在提供高并发和可扩展的在线医疗记录检索,数据分析和隐私保护功能。
为了加快病历检索,Hadoop集群被采用已进行线下数据存储和检索库。
(2)更具体来说,家庭诊断服务的实现由四个步骤组成。
首先,用户提交查询有关他/她的疾病信息。
然后医疗记录匹配用户的疾病症状,性别和年龄在步骤2中检索。
通过检索医疗记录,数据分析在步骤3进行,来计算疾病症状的点阵,揭示疾病常见症状之间的关系。
最后,隐私敏感信息根据访问控制策略在医疗记录中被过滤。
因此,疾病的症状点阵,以及进行过隐私处理的医疗记录被返回到用户,这为用户自己做一个初步的诊断提供了一个详细的诊断依据。
1.4本文的组织结构
本文的其余部分安排如下。
第2节讨论的病历初步知识,以及一些关键技术,如基于云计算框架中被采用的Hadoop的计算框架和Lucene库。
基于云计算架构的家庭诊断服务将在第3节介绍。
第4节介绍了家庭诊断服务是如何为用户提供了诊断援助的细节。
基于云计算框架的家庭诊断服务的评价将在第5部分被讨论。
其中一个原型系统设计讨论和一个运行示例会被提出以证明我们的建议的可扩展性和高效率。
第6节讨论了大医疗数据在工业和学术领域应用的相关工作。
第7节总结全文,并讨论了今后的工作。
2初步知识
在本节中,预备知识将被讨论,来介绍医疗记录和在基于云的架构中应用的一些技术。
2.1医疗记录
定义1(医疗记录)从形式上看,电子病历是去网络由三元组定义:
EMR=(病人数据,病人简况,临床资料)(Zhangetal.,2013;Lietal.,2010)。
每个元素的内容如下:
(1)病人数据:
患者数据包括患者的基本信息,如患者的姓名,性别,出生年月日等;
(2)患者简况:
患者简况通常包括病人的病史,包括疾病史,手术史,输血史,以及过敏史等等。
(3)临床资料:
临床数据存储详细的临床信息,包括症状集,病人投诉,现病史,诊断结果,治疗方法等,与患者的每次访问一个保健医生相关。
通常情况下,在临床活动中,电子病历要么是一个XML文件由存储在网络文件系统的标签值对组成,或者存储在关系数据库中的关系记录。
图1给出了XML病历的一个例子。
一般来说,在日常的诊断中,患者的疾病通常是由他/她的疾病的症状,以及他/她的年龄和性别确定的。
另外,症状相同,同样的性别和年龄相仿的患者倾向于感染类似疾病。
基于此观察,使用者在在类似的医疗记录检索需要提供疾病症状,性别和年龄,如图1三个红色圆圈所示。
2.2Hadoop:
HDFS和MapReduce框架
Hadoop(Ekanayakeetal.,2011;BahgaandMadisetti,2012)是一个云计算框架,用来运行内置商用硬件大型集群应用程序。
Hadoop由两个主要组件组成。
(1)HDFS:
HDFS(Hadoop分布式文件系统)在集群中的节点的集合中存储文件。
大文件分割成块(默认64MB)和每一个块可以写入多个节点(默认值是3)容错。
图1一个XML医疗记录的例子
(2)MapReduce:
MapReduce是并行数据处理模型,该模型由两个阶段组成:
Map和Reduce。
在映射阶段,从分布式系统(如HDFS)读取数据,在一组集群中的计算节点之间分区,并将节点作为一组键值对。
映射任务过程的输入,你记录相互独立的和中间结果作为键-值对。
中间结果存储在本地磁盘上运行的节点映射任务。
当所有的映射任务完成,减少阶段开始的中间数据具有相同关键是聚合。
映射任务处理输入的相互独立的记录并产生中间结果作为键值对。
中间结果存储在本地磁盘上运行的节点映射任务。
当所有的映射任务完成,筛检阶段开始并把具有相同关键值得中间数据聚合起来。
在我们的提案中,HDFS被采用到分布式存储Lucene文件和索引文件。
同时,MapReduce计算框架用于离线批处理索引构建工作。
2.3Lucene:
信息检索库
Lucene是一个高性能,可扩展的信息检索(IR)库,并通过Apache软件基金会授权的开源项目(OchoaandDuval,2008;Hatcheretal.,2004).它被广泛应用于许多搜索应用,如NetFlix,Digg,MySpace,LinkedIn等等(ApacheLucene,2014).
Lucene的核心部件是索引和搜索。
索引是负责建立索引文件从最初的文件转化Lucene的文件,以方便快速上网查询。
实际上,Lucene的允许应用程序在几乎所有的数据源添加搜索能力,包括远程Web服务器上的网页,存储在本地的文件系统,文本文件,MSWord文档,XML网络LES,或任何其他形式,从中我们可以提取文本文件信息。
另一方面,搜索是这样一个过程,根据在索引阶段建立的索引文件,在索引文件中查找单词以找到数据源。
在本文中,我们采用Lucene和Hadoop实现病历家庭诊断服务的搜索。
首先,医疗记录通过标准LuceneAPIs转换为多个Lucene文档。
然后Lucene文档被存储为块文件在Hadoop的HDFS集群。
此外,为支持快速在线医疗记录搜索、MapReduce任务在每个Lucene文档创建索引时被初始化。
索引阶段后,索引文件也存储在Hadoop的HDFS集群。
3云计算框架下的家庭诊断服务
3.1应用场景
在本文中,我们提出了一个基于云计算的框架来实现家庭诊断服务,从历史医疗记录中提取一些诊断的帮助提供给用户。
更具体来说,家庭诊断服务,根据目标用户的查询,允许基于症状的病历检索。
此外,为帮助用户区分检索到的病历疾病,会进行数据分析以构建疾病症状点阵。
这个疾病症状点阵在用户查询的过程中会揭示具有相同症状的疾病的关系。
因此,在疾病症状点阵的帮助下,目标用户很容易排除不可能的疾病而选择感兴趣的。
同时,医疗记录返回给目标用户以获得更详细的参考。
此外,返医疗记录返回到目标用户之前,隐私信息在医疗记录会被过滤,以避免暴露医疗记录中的敏感隐私数据。
我们的家庭诊断服务旨在通过相似的历史医疗记录为用户提供自我护理服务。
从大规模和不断增长的医疗记录中搜索类似病历需要按需数据存储模型和弹性可扩展性以管理高峰期进入家庭诊断服务的权限。
由于云计算的显着特征,如按需存储,弹性计算能力,本文提出了基于云计算框架实施家庭诊断服务。
基于云计算架构概述的讨论如下。
3.2基于云计算架构的概述
为了简化讨论,我们把一些术语罗列在下面的表1中。
表1基于云计算架构的关键术语
图2基于云计算架构的家庭诊断服务
如图2所示,云计算框架由两个主要的集群组成,一个线下的Hadoop集群和一个在线的分布式搜索集群,它由一组四个集群和负载平衡器组成:
(1)大规模数据存储和并行索引建立采用离线的Hadoop集群。
简而言之,HDFS是用于存储索引文件和大量医疗记录中转换过来的Lucene文档;而MapReduce计算模型用于平行索引构建;
(2)网上分布式搜索簇设计用于处理高并发和可扩展方式的用户查询。
此外,四个簇以及一个负载平衡器包括在在线分布式搜索群集。
相应地,(a)一种搜索由N×M个搜索节点组成的节点集群被设计出来以进行病历检索。
(b)由P个数据分析节点组成的数据分析集群被设计用于数据分析以建立一个疾病症状点阵。
(c)由Q个访问控制节点组成的访问控制集群被采用以过滤隐私信息。
(d)一个负载平衡器和一个由K个调度器所组成的调度集群被用于平衡用户查询的负载。
在我们的提案中,基于云计算框架的可扩展性可以通过动态添加或删除在每个集群中的节点来获得。
两个集群之间的关系的分析如下。
一旦完成索引构建,一个完整的索引文件就变分成N个片,此外,第i个(1
换句话说,存储在一排搜索节点集群中的每个节点中的索引文件组成了一个完整的索引文件。
此外,在搜索节点的集群的第i个(1
3.3离线Hadoop集群
在离线存储模块中,有两个任务会进行,包括文档存储和索引建立。
正如2.2节中所讨论的,首先,医疗记录被翻译成几个Lucene文档。
然后,我们为每个Lucene文档建立索引支持快速在线病历检索。
具体地说,我们使用Hadoop集群进行Lucene文档存储、并行索引构建,以及相关索引文件存储。
3.3.1分布式数据存储模型
正如初步知识那一节讨论的,医疗记录是作为XML文件存储在文件系统或是RDMBs的关系记录。
图3家庭诊断服务的文档存储模型
根据Lucene的性质,所有医疗记录在索引阶段之前都应该转移到由字段值对组成的Lucene文档。
对XML的医疗记录,我们解析他们以建立相应的Lucene文档。
对于存储在RDBMs的医疗记录,我们使用HBase作为中间件,使在多个关系数据库中的“加入”操作更高效。
特别的,把相关的医疗数据转换为存储在HBase中的数据之后,我们可以应用“加入”和“删除”操作把结构化的医疗记录转换为Lucene文档。
所有的Lucene文档被存储在Hadoop集群的HDFS中,如图3所示。
图4MapReduce框架下构建索引文件的流程图
3.3.2离线索引构建
为了实现快速在线用户查询处理,索引文件建立时与每个Lucene文档相关联。
我们采用MapReduce计算框架进行批量索引构建。
图4描述了MapReduce框架来构建索引文件的流程图。
首先,每个文档块被分为若干个分区,映射节点为给定文档分区建立索引。
根据分布式搜索集群中搜索节点的列的数量(i.e.,N),每个映射节点会将索引文件分为N个部分。
一旦完成映射工作,在每个映射节点上的N个碎片会重组到reduce节点,并完成合并操作。
在完成合并操作后,可以获得索引文件的N个碎片,它们存储在HDFS中,如图3所示。
另外,为了能够进行在线医疗数据检索,索引文件的N个碎片被分布到分布式搜索集群的搜索节点中。
而且,我们建立了三种类型的索引文件来进行在线医疗数据检索,包括反向检索,概要检索和细节检索。
这里,我们还是用2.1节的例子来解释每个索引文件的内容。
反向索引文件。
反向索引文件记录症状集和相应的医疗记录ID之间的映射关系。
如图1所示,症状的描述是一个字符串,由特定的分离器分离出来。
在基于症状的医学检索中,这种朴实的方法是为了使每个查询中的症状集合与索引文件中的每个症状集相匹配。
然而,大规模的字符串匹配在实际应用中并不是容易实现的。
与(Lietal.2010)相似,布隆过滤器的签名(Bloom,1970)和布隆过滤器索引结构被用来加快基于症状的医疗记录查询。
算法1BF签名计算算法
算法1描述了如何为一组症状在医疗记录中构建一个布隆过滤器签名(BF签名)。
对于图1中所示的医疗记录示例,假设m的值设置为10,并且分别有两个离散函数h1和h2。
则布隆过滤器签名计算如下:
(1)症状组中的症状={发热、咳嗽、呼吸困难},其散列值被计算出来。
h1(热)=5,h1(咳嗽)=6,h1(呼吸困难)=7。
此外,h2(热)=6,h2(咳嗽)=2,h2(呼吸困难)=9。
(2)因此,对于h1,第一个10位向量的值是0001110000,5日,6日和7日根据散列值设置为1。
类似的,第二个10位向量的值等于010*******。
(3)由于0001110000∧010*******,在医疗记录中这个症状集设置的布隆滤波器签名是010*******。
当一个用户输入一组症状,它的签名首先会由算法1生成,并且与每个医疗记录
的BF签名相比较,如果
∧
=
,那么
可能满足用户的需求。
否则
将被安全的删除。
受益于位操作,所有的在关于签名的计算都是非常有效的。
BF索引文件是由键值对组成的,并以序列文件存储于HDFS中。
每个值都包括一组CRids(临床数据的cIDs)和将被检索的原始的症状集合的ID;然而关键是这些原始症状集合的BF签名。
通过BF签名查询测试签名,大量不合格的数据将被删除。
然而,在布隆过滤中被保留下来的CRid仍然不是准确的。
因此我们也会存储原始的症状集以确保匹配。
概要检索文件。
概要文件检索记录了医疗记录的一些关键部分,用于过滤掉不相关的医疗记录。
在我们的例子中,病人的性别、年龄将被记录以过滤一些记录。
这些记录中患者的性别和年龄是与目标用户的查询条件所不符的。
细节检索文件。
细节检索文件是由每个Lucene文档中的字段值对所组成的,用于数据分析并返还给目标用户。
在我们的设计中,在Lucene文档中的所有字段将被添加到细节索引文件。
为了进行数据分析过程,诊断结果和疾病症状字段被用于建立疾病症状点阵,以显示具有相同症状的疾病之间的关系。
同时,为帮助目标用户做出更准确的判断,Lucene文档中的字段,如患者的年龄和性别,症状,诊断结果,以及所提供的治疗医师应该返回供用户参考使用。
图5中罗列了Lucene文档的一些字段,它是从图1的医疗记录转换过来的。
由于空间限制,我们不详细列出所有字段索引。
请注意,根据Lucene索引构建的可配置特性,所有字段在Lucene可以很容易地从细节索引文件中添加或删除。
图5三种索引文件的数据结构
3.4在线分布式搜索集群
3.4.1分布式搜索集群的关键组件
如图2所示,基于Lucene的在线分布式搜索集群由五个主要组件组成,分布式搜索集群={负载平衡器,调度集群,搜索节点集群,集群数据分析,访问控制集群}。
在下面的讨论中,每个基本组件的责任将被展示。
(1)负载平衡器
负载均衡器是家庭诊断服务的一种硬件接口。
在接受用户查询时,负载平衡器根据其选择规则将查询转发到一个调度程序。
选择规则通常是依赖于硬件,这里不做讨论。
(2)分配调度集群
为了支持高并发的用户查询,一个分配调度集群是由K个调度程序组成的。
每个调度程序负责搜索节点集群、数据分析集群和访问控制集群之间的协调。
具体地说,从负载平衡器收到用户查询之后,一个调度程序会从搜索节点集群的每一列选择一个搜索节点执行实时的医疗记录检索。
当医疗记录被返回,它会合并检索结果并把合并的结果转发给数据分析集群的数据分析节点以建立疾病症状点阵。
在把疾病症状点阵和医疗记录返回给目标用户之前,它会授权访问控制集群过滤检索到的医疗记录中的隐私敏感信息以保护患者的隐私。
从图2中我们可以看到,每个集群包含多个节点。
因此,对于每一个用户查询,节点选择算法会进行以选择合格的节点进行用户查询。
节点选择算法将在3.4.2节中讨论。
(3)搜索节点集群
搜索节点集群是一个弹性和可扩展的搜索矩阵,由N×M搜索节点组成(每个搜索节点包含索引碎片,并通过采用Lucene搜索库功能开展实时医疗记录检索)。
每一行的第i个(1
为了实现高并发的实时医疗记录检索,M-1个搜索节点被复制到每排的每个节点。
对于每次用户查询,一个搜索节点会被调度程序从每一列中选取以进行医疗记录检索。
通常,N的值是由索引文件的大小和每个搜索节点的内存性能决定的,而M的值是由并发用户查询的数量决定。
(4)数据分析集群
通常,对于一个给定的用户的查询,由于用户对医学知识的欠缺,这种疾病症状集合可能是不完全的。
因此,检索到的相关的医疗记录可能就包含多个疾病分类。
与相关的医疗记录相联系,可以提取疾病分类和疾病症状。
并且用户没有提供的症状可以用来区分疾病分类。
在我们的提案中,数据分析集群旨在从检索到的医疗记录中计算疾病症状的点阵。
关于如何计算疾病点阵的细节我们将在后续的章节讨论。
(5)访问控制集群
正如上述节中所讨论的,类似的医疗记录返回给目标用户作为一个更详细的家庭诊断依据。
然而,医疗记录是隐私敏感的。
在医疗记录返回给目标用户之前,应该进行隐私保护,保证不会曝光病人的隐私信息。
为了解决这一问题,我们设计了一个访问控制策略,根据用户的角色,用户会被分为不同的用户域。
而且,对于每个用户域,细节检索文件的字符串会被相应地归入静态域和动态域。
动态域中的信息可以通过相应域的角色获得。
而静态域中的信息是不可获取的。
在我们的设计中,每个访问控制集群中的节点都会通过索引文件存储用户的权限。
索引文件会记录用户ID和相关的用户域之间的关系。
而且,我们设计了另一个索引文件来存储用户域和与其相关的细节索引文件中的动态字符串之间的映射关系。
在调度程序把结果返回给负载平衡器之前,它会根据相应地用户ID授权访问控制集群过滤掉细节索引文件中的静态域。
3.4.2节点选择算法
对于每次用户查询,调度程序会从搜索节点集群中选择某些节点。
调度集群和数据分析集群会执行家庭诊断服务。
对于节点选择,一种朴素的方法是采用循环调度算法,这样每个节点都会轮流被选中。
然而,循环调度算法的可扩展性较差,因为它不考虑每个节点的不同的服务能力。
在这里,我们提出了一个合理动态节点选择算法,为每次用户查询选择合适的节点。
不失一般性,搜索节点集群的节点选择将被讨论以说明动态节点选择算法的合理性。
在搜索节点集群,集群中的每一行搜索节点构成一个完整的索引文件,每一列的搜索节点都是相同的。
因此,对于每一次用户查询,每一列只有一个搜索节点被选中来进行医疗记录查询。
简而言之,调度集群有一个包含N个最小堆栈的集合,而每个最小堆栈都有M个元素(如图6所示)。
而且这N个最小堆栈与搜索节点集群的N列相对应,而对于每个最小堆栈,M就是每列中的搜索节点数。
这里,在第i(1
服务失败率的值。
图6调度程序节点选择算法的流程图
定义2(服务失败率,SFR)对于每个搜索节点,它的服务失败率是由给定时间内无法响应的查询的数量决定的。
SFRi-j的值越小,搜索节点i-j的服务质量越好。
在每次节点选择循环中,调度程序会把查询转发给每列中SFRi-j最小的搜索节点i-j,并且SFRi-j会增加1。
当i-j把搜索结果返回给调度程序后,SFRi-j就减1。
同时,当SFRi-j的价值发生变化时,该最小堆栈(i)将进行调整,以达到一个平衡,以维持最小堆栈的值。
算法2描述了如何为一次用户查询选择一组搜索节点。
算法2节点选择算法
4家庭诊断服务的实现
在这个部分,我们将讨论基于云计算框架的家庭诊断服务的实现。
家庭诊断服务的实现由4个步骤组成(如图7所示)。
包括查询提交,医疗记录检索,数据分析和返回的结果中隐私信息的过滤。
图7实现家庭诊断服务的流程图
步骤1查询提交
在这一步中,目标用户提交一个与他/她的疾病信息有关的查询,。
在从目标用户收到相关联的一组症状查询,负载平衡器将转发查询给某个调度程序。
步骤2医疗记录检索
调度程序会选择一组搜索节点通过利用算法2去查询与用户查询相匹配的医疗记录。
步骤3数据分析
当从搜索节点收到匹配的医疗记录后,调度程序会把搜索结果合并并把结果转发给数据分析集群进行数据分析。
数据分析节点会计算与步骤2中的医疗记录相关的疾病症状点阵。
步骤4返回结果中隐私信息的过滤
在这个子步中,医疗记录中病人的隐私信息会根据目标用户的访问权限被过滤。
在下面的讨论中,我们将讨论家庭诊断服务的4个步骤的细节。
为了简化讨论,表2总结了一些关键术语。
表2家庭诊断服务中的关键术语
4.1查询提交
从形式上看,在我们的家庭诊断服务中,一次用户查询可以形式化为定义3
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 医疗 数据 背景 基于 架构 家庭 诊断 服务