智能医疗表单分析与 Amazon Bedrock 机器学习博客

利用 Amazon Bedrock 实现智能医疗表单分析

作者 Satish Sarapuri Deborah Devadason 和 Harpreet Cheema日期 2024 年 8 月 13 日来源 Amazon Bedrock

关键信息

生成性人工智能AI改善医疗健康行业,通过整合和分析结构化与非结构化数据,提升效率和效果。医疗行业生成大量非结构化文本数据,如临床和非临床的文档。Amazon Bedrock 是一种完全托管的服务,可通过 API 访问多种基础模型,优化数据处理和分析。利用 Amazon Textract 和 Anthropic Claude 3,实现高效的数据提取和文档比较。

生成人工智能AI在医疗系统中挑战重重,但也提供了巨大的机遇,通过整合和分析以前隔离的数据,推动医疗效率和效果的提升。医疗行业生成的大量非结构化数据,例如患者资料、病史和测试结果,通常分散在纸质表单中,给数据管理带来困难。

在此背景下,亚马逊的 Amazon Bedrock 提供了强大的支持,使用户能够快速、私密地定制基础模型,轻松集成到现有应用中。文章探讨了如何利用 Anthropic Claude 3进行相关数据生成和分析。

解决方案概述

该方案的设计遵循一系列结构化步骤,确保从数据上传到处理展示都得到有效管理。我们将解决方案的主要组成部分及其相互作用进行概述。

以下是构建此解决方案所需的关键步骤,以及详细介绍所使用的 AWS 服务,帮助实现高效的数据运营。

第一部分:标准表单的数据提取与存储

有关数据提取和存储的关键元素,参见以下流程图。

标准表单处理流程如下:

用户上传纸质表单的图像PDF、PNG、JPEG到 Amazon S3。使用 Amazon SQS 作为消息队列。当有新表单上传时,会触发 SQS 事件。如果 S3 对象仍未处理,则在尝试两次后,将其移至 SQS 死信队列DLQ,可以配置 Amazon SNS 主题以通过电子邮件通知用户。SQS 消息触发一个 AWS Lambda 函数,负责处理新的表单数据。Lambda 函数读取新的 S3 对象并将其传递给 Amazon Textract API,以处理非结构化数据并生成层次化的结构化输出。Lambda 函数将转换后的文本传递给 Anthropic Claude 3,生成问题列表。最后,Lambda 函数将问题列表存储在 Amazon S3 中。

Amazon Bedrock API 调用以提取表单详情

我们在流程中调用 Amazon Bedrock API 进行以下操作:

智能医疗表单分析与 Amazon Bedrock 机器学习博客从标准表单提取问题:首次 API 调用从标准或参考表单提取问题与子问题列表,作为其他表单比较的基准。从自定义表单提取问题:第二次 API 调用从需要与标准表单对比的自定义表单中提取问题与子问题列表。

这种分步骤的提取方式确保了以下优势:

准确性:API 访问结构化数据,便于识别匹配和不匹配的内容。高效处理:分开提取标准和自定义表单,避免冗余操作。可观察性与互操作性:使不同表单的问题分析更加透明。避免幻觉:依靠提取数据,保障对比过程的完整性。

以下是示例代码API 调用:

pythondef getresponsefromclaude3(context promptdata) body = jsondumps({ anthropicversion bedrock20230531 maxtokens 4096 system You are an expert form analyzer and can understand different sections and subsections within a form and can find all the questions being asked You can find similarities and differences at the question level between different types of forms messages [ { role user content [ {type text text fGiven the following document(s) {context} n {promptdata}} ] } ] }) modelId = fanthropicclaude3sonnet20240229v10 config = Config(readtimeout=1000) bedrock = boto3client(bedrockruntime config=config) response = bedrockinvokemodel(body=body modelId=modelId) responsebody = jsonloads(responseget(body)read()) answer = responsebodyget(content)[0]get(text) return answer

用户提示以提取字段并列出

此处向 Anthropic Claude 3 提供用户提示,以从原始文本中提取字段并列出以供比较:

pythongetresponsefromclaude3(response f Create a summary of the different sections in the form then for each section create a list of all questions and sub questions asked in the whole form and group by section including signature date reviews and approvals Then concatenate all questions and return a single numbered list Be very detailed)

以下图示展示了从标准表单生成的问题列表输出。

将此问题列表存储在 Amazon S3,以便在下一部分进行其他表单的比较。

surfshark机场

第二部分:数据提取与表单字段比较

以下图示描述了接下来的步骤,即数据提取与表单字段比较。

步骤 1 和 2 与前述相似,但针对需与标准表单比较的表单进行重复。

接下来的步骤如下:

SQS 消息调用 Lambda 函数,负责处理新的表单数据。使用 Lambda 函数提取 Amazon Textract 中的原始文本。Anthropic Claude 3 从自定义表单生成问题列表,并将这两个表单及其问题列表传递给 Amazon Bedrock,进行比较,识别差异并提供相关行业的洞察和建议。

接下来的部分将讨论步骤 46。

以下截图展示了从自定义表单生成的问题列表输出。

使用 Anthropic Claude 3 在 Amazon Bedrock 上进行最终比较:

以下示例显示了使用 Amazon Bedrock 和 Anthropic Claude 3 进行的比较结果。

用户提示如下:

pythoncategories = [个人信息 工作历史 医疗历史 药物和过敏史 附加问题 身体检查 职位描述 检查结果]forms = fForm 1 {referenceformquestionlist} Form 2 {customformquestionlist}

以下是第一次调用示例:

pythonmatchresult = (getresponsefromclaude3(forms f Go through questions and sub questions {start} {processed} in Form 2 return the question whether it matches with any question /sub question/field in Form 1 in terms of meaning and context and provide reasoning or if it does not match with any question/sub question/field in Form 1 and provide reasoning Treat each sub question as its own question and the final output should be a numbered list with the same length as the number of questions and sub questions in Form 2 Be concise))

以下是第二次调用示例:

pythongetresponsefromclaude3(matchresult f Go through all the questions and sub questions in the Form 2 Results and turn this into a JSON object called All Questions which has the keys Question with only the matched or unmatched question Match with valid values of yes or no and Reason which is the reason of match or no match Category placing the question in one the categories in this list {categories} Do not omit any questions in output)

以下截图展示了与参考表单匹配的问题。

以下截图展示了未与参考表单匹配的问题。

接下来的步骤是:

SQS 队列调用 Lambda 函数。

Lambda 函数调用 AWS Glue 任务并监控完成情况。

a AWS Glue 任务将 Amazon Bedrock 模型生成的最终 JSON 输出处理为报告的表格格式。

Amazon QuickSight 用于创建交互式仪表盘和可视化,使医疗专业人士能够对分析进行深入探索并基于洞察做出明智决策。

以下截图展示了 QuickSight 仪表盘的示例。

下一步

许多医疗服务提供者正在投资数字技术,如电子健康记录EHR和电子医疗记录EMR,以简化数据收集和存储,便于相关工作人员访问患者记录。数字化健康记录还提供了电子表单和远程数据编辑的便利性,为患者提供更安全和可访问的记录系统,减少数据丢失,优化数据准确性。类似的解决方案可以帮助将纸质表单中的数据集成到 EHR 中。

结论

生成性 AI 解决方案如 Amazon Bedrock 和 Anthropic Claude 3 可以显著简化从纸质表单或图像中提取和比较非结构化数据的过程。通过自动化提取表单字段和问题,并智能地与标准表单进行比较,该解决方案提供了更高效、准确的数据处理方式。集成 AWS 服务如 Lambda、Amazon S3、Amazon SQS 和 QuickSight,构成了一种可扩展、强大的架构,适用于此类解决方案。随着医疗组织不断数字化其操作,这类 AI 驱动的解决方案将在数据管理、遵循法规及最终提升患者护理方面发挥关键作用。

关于作者

Satish Sarapuri 是 AWS 的高级数据架构师,负责数据湖的建设。他帮助企业客户构建高性能且具备高可用性、成本效益、高韧性和安全性的数据解决方案。他热衷于帮助客户通过数据驱动决策,实现商业成果。在业余时间,他喜欢和家人一起度过时光,并打网球。

Harpreet Cheema 是 AWS 生成性 AI 创新中心的机器学习工程师。他热衷于机器学习领域,专注于数据相关问题的解决方案开发和交付。

Deborah Devadason 是亚马逊网络服务专业服务团队的高级顾问。她是一位以结果为导向并充满激情的数据战略专家,拥有超过 25 年的全球咨询经验。她利用自己的专业知识解决复杂问题,加速商业旅程,为数字化和数据转型的进程提供坚实支持。

标签 人工智能、电子健康记录、机器学习

建立一个自动化的洞察提取框架,用于客户反馈分析,使用 Amazon Bedrock 和 Amazon
< 上一篇
美国:TikTok的过度数据收集行为威胁隐私和国家安全 媒体
下一篇 >

评论