Jincay的医防融合笔记

关于支撑河南省疾控局传染病与监测预警项目的工作笔记


数据映射技术选型

<h2>数据映射技术选型</h2> <p>多样化的数据采集方式能够最大程度保障我们前置软件采集数据的效率,一般有如下方式:</p> <h4>HIS / LIS 数据同步(API、MPI等)</h4> <ul> <li>通过数据底座,与医院HIS连通,实现医疗数据的自动采集 <h4>传统手工录入</h4> <p>多样且友好录入界面,便于手工录入数据,取代纸质CRF</p> <h4>Excel 批量导入</h4> <p>可按照模板,将既往数据等累积的大量数据批量导入</p> <h4>OCR 拍照识别</h4> <p>纸质化验单、报告单可通过拍照智能识别填入系统</p> <h4>NLP 后结构化</h4> <p>通过自研AI能力,对文本数据后结构化处理,提取有效信息</p></li> </ul> <h2>根据这个项目的复杂度,我们主要依靠API进行数据同步和NLP后结构化技术提取所需信息</h2> <p>如果数据映射涉及到复杂的数据处理和计算,且可以并行化执行,用MPI,例如对每个病历进行复杂的统计分析或模式识别。 如果数据映射需要从多个源系统(如不同的医院信息系统)中提取数据,并将这些数据标准化后存储到本平台数据库中,用API。</p> <h2>为研发团队搜的相关技术和业务交互应用资料如下:</h2> <h4>使用API从不同的源系统中提取数据</h4> <ul> <li>MPI(Message Passing Interface) 适用场景:MPI主要用于并行计算和高性能计算环境,适合处理需要大量计算资源的任务,本项目涉及到大量的数据处理和分析,且这些处理可以并行化,利用多个计算资源来加速数据处理,如大规模数值模拟、图像处理、气候模型等。 效率:MPI可以显著提高数据处理的速度,因为它允许多个处理器或计算节点同时工作,每个节点处理数据的一部分。</li> </ul> <h4>使用MPI进行并行的数据处理和分析</h4> <ul> <li>API(Application Programming Interface) 适用场景:API通常用于不同软件系统之间的数据交换和通信,集成不同的应用程序和服务,用于数据的提取、转换和加载(ETL),与现有的医院系统进行交互。通过API提供一种标准化的方式来访问和操作数据,如电子健康记录(EHR)系统、预约系统、在线问诊服务等。 效率:API的效率在于它能够简化不同系统之间的数据交换过程,使得数据映射和集成更加自动化和标准化。</li> </ul> <p><strong>虽然在最后技术总监还是决定只用API,但我仍然保留MPI的提议,毕竟未来从全国范围看,肯定需要用到大规模机器学习,人工智能大模型等应用。 </strong></p> <h4>因为MPI在大规模机器学习中有以下几个优势</h4> <ul> <li> <p>高效的通信模型<br /> MPI提供了高效的通信模型,可以在多个计算节点之间传递数据和协调计算。MPI的通信模型是基于消息传递的,可以实现异步通信和非阻塞通信,从而提高计算效率。 </p> </li> <li> <p>可扩展性强<br /> MPI可以在大规模计算集群中运行,可以实现数以千计的计算节点之间的通信和协调计算。MPI具有非常强的可扩展性,可以满足大规模机器学习的需求。MPI可以适用于多种计算模型,例如数据并行、模型并行和混合并行。可以根据不同的应用场景和需求选择适当的并行计算模型,从而提高计算效率。</p> </li> <li> <p>分布式训练 分布式训练是指将训练数据划分为多份,分配到不同的计算节点上进行并行计算,最终将各个节点的计算结果进行汇总,得到最终的模型参数。MPI可以用于实现分布式训练的通信和同步操作,加速模型训练过程。</p> </li> <li> <p>多模态数据处理 在机器学习中,常常需要处理高维度多模态的数据,例如图像、视频、文本等。这些数据的特点是维度高、体积大,需要大量的计算资源进行处理。MPI可以用于实现在多个计算节点之间传递数据和协调计算,从而加速高维度数据处理的过程。</p> </li> <li>大规模数据推理 在机器学习中,模型的推理过程也需要大量的计算资源。MPI可以用于实现分布式推理,将推理任务划分为多份,分配到不同的计算节点上进行并行计算,加速推理过程。</li> </ul> <h2><strong>电子病历的前结构化和后结构化</strong></h2> <p>病历结构化是医院信息化和医疗智能化发展的重要环节,是使计算机能像医生一样进行诊断和判断的基础。如果病历能够结构化,就意味着,以类似的方式也能完成对各种非结构化数据(如病人咨询、医生检查、化验单等)的结构化。所以,在智能医学领域,病历结构化被认为是除医学图像识别外的另一项关键技术。</p> <p>电子病历的前结构化是一种预设模块的控制,在医生书写电子病案时,提供一套结构化模板,医生可从中选择。</p> <p>后结构化是对医生书写的文本型非结构化数据进行事后处理,利用自然语言处理方法,从中提取结构化信息,并在电子病历模板中进行填充。</p> <p>总结来说,首先要有某种结构化的电子病历规范(或称为模板),先由医生来填写;再通过后结构化,从医生写的病历中抽取相应的信息来填写。</p> <p><strong>为什么要结构化?</strong></p> <p>目前,医疗记录的结构化主要基于以下几个方面的原因和要求:</p> <p><strong>(1)医疗记录数据不标准,或者没有完全整合。</strong>全国有超过2.7万家医院使用由几十家主要供应商开发的不同的HIS系统管理医疗记录。即使这些不同的HIS系统都以文本形式存储医疗记录,甚至有些已经采用了最新标准的电子医疗记录系统,以结构化形式存储医疗记录,但由于处理大量累积的历史记录、打通不同厂商的医疗记录系统格式、处理因个人隐私而只能提供的纸质医疗记录等诸多方面的原因,仍需要对医疗记录进行结构化,以完成后续的分析和利用。</p> <p><strong>(2)分析患者资料以供临床试验</strong>。全国有4千多家药厂,每年都有大量新药和已上市药物的临床试验,要求在医院收集患者资料以测试药物效果等指标,这就需要大量收集和协调临床资料,如EDC系统(Electronic Data Capture System, 电子数据捕获系统)和CRC系统(Cyclic Redundancy Check, 循环冗余校验)。而大多数患者资料都记录在HIS系统中,所以,EDC、CRC系统本质上是以人工整理和检查的方式来组织部分患者数据。如果采用智能化病案结构技术,可以大大降低这一环节的成本。</p> <p><strong>(3)医生诊断治疗的辅助、管理和培训。</strong>以病案结构为基础,可计算出病症、疾病、药物、化验指标等多个知识点之间的推理关系和概率,进一步用于优化医生的工作。举例来说,在构建了知名大医院的病历结构之后,创建辅助诊断系统,输出到基层卫生单位以提高医生的工作能力,根据症状描述和检验结果智能地提出诊断建议;自动分析医生开的药是否合理,或判断是否存在误诊风险;自动填写病历首页等。</p> <p><strong>如何实现后结构化?</strong></p> <p>整体而言,将病历结构化,提取相关知识点,是智能诊疗等一系列人工智能应用的基础工作。</p> <p>病案构造是根据病案内容的深层语义理解,提取出相应的知识点,因而一般包括以下几个环节:(1)建立需要在某一领域提取的知识本体,如心脏病和糖尿病,以及相应的本体涵盖的相应疾病、症状、检查方法、分析结果、药物、治疗方法、手术名称、病因等;(2)针对每个目标知识点,标注足够的训练语料,或者写出足够的提取规则,开始提取;(3)利用机器学习方法,根据训练语料和提取规则,建立训练模型,采用自动学习模式,并处理新的医疗记录。</p> <p>建立病案结构时,知识图谱和深度学习是重要的技术支持之一。创建有关疾病领域的知识图谱,定义成千上万个概念以及它们之间的关系。将定义中的每个概念和关系从病历中提取出来,就完成了结构化。知识图谱的定义过程中,可能会出现定义不全、定义不准确的情况,这时可以通过深度学习进行完善,将少量人工定义的知识与大量历史记录相结合,自动发现新知识,完成“小知识+大知识”的过程。</p> <p>也就是说,首先构建相关领域的医学知识图谱,然后利用包括深度学习在内的多种算法对知识图谱进行优化,实现新知识的自动发现。</p> <p><strong>后结构化的难点</strong></p> <p>医疗记录结构化技术的研究与开发存在以下几个主要难点:</p> <p><strong>(1)知识量大。</strong>医疗记录的结构需要抽取大量的知识点,如ICD-10编码系统中规定的疾病、治疗方法就有3万多种,与症状、药物、发病机制有关的知识点更多。怎样界定成千上万的知识点,以及如何建立它们之间的关系,是非常复杂的。</p> <p><strong>(2)精确度要求高。</strong>诊疗和药物临床试验通常要求从病历等数据中提取患者信息的精确度超过95%,而机器学习算法,包括深度神经网络,由于标注语料等各方面的原因,无法达到精确度要求。例如,不能对成千上万个知识点中的每个知识点标注数千个实例。</p> <p><strong>(3)较低的召回率。</strong>医生在书写病历时,对于相同的事物(如疾病和症状描述),存在大量不同的自然语言表达。所以对于每个知识点,收集并标注足够的语料,让机器尽可能全面地理解医疗记录中的不同表述,实际上是非常困难的,这就给召回率带来了很大的挑战。</p>

页面列表

ITEM_HTML