modelscope·@jmandel/health-record-mcp
一个模型上下文协议服务器,通过使用SMART on FHIR将人工智能工具与电子健康记录连接起来,允许对兼容电子健康记录中的患者数据进行安全的搜索、查询和分析。

https://youtu.be/K0t6MRyIqZU?si=Mz4d65DcAD3i2YbO
该项目充当一个专门的服务器,为大型语言模型(LLMs)和其他AI代理提供与电子健康记录(EHRs)交互的工具。它利用SMART on FHIR标准进行安全的数据访问,并通过**模型上下文协议(MCP)**来暴露这些工具。
可以将其视为一个安全的网关和工具包,使AI能够安全地访问和分析来自不同EHR系统的患者数据。
系统的工作分为三个主要阶段:
MCP服务器提供了几个用于与加载的EHR数据交互的工具:
grep_record:在整个获取的记录(结构化FHIR数据+笔记/附件中的文本)中执行文本或正则表达式搜索。适用于查找关键词或特定提及(例如,“糖尿病”、“阿司匹林”)。query_record:直接针对结构化FHIR数据执行只读SQL SELECT 查询。对于基于已知FHIR资源结构的精确查找非常有用(例如,通过LOINC代码查找特定的实验室结果)。eval_record:在获取的数据(FHIR资源+附件)上直接执行自定义JavaScript代码。为复杂计算、组合多个来源的数据或自定义格式提供最大的灵活性。这种设置使AI工具能够通过标准化和安全的接口利用全面的EHR数据。
(开发人员设置和使用细节可以在代码库和特定模块文档中找到。)
该项目提供了不同的方式来获取EHR数据并通过MCP工具公开:
该项目包含一个独立的Web应用程序,允许用户通过SMART on FHIR连接到他们的EHR并获取数据。
https://mcp.fhir.me/ehr-connect#deliver-to-opener:$origin $origin 替换为实际打开此链接的窗口的源)。DocumentReference 中找到的 PDF、RTF、HTML 等)中提取纯文本。ClientFullEHR): 获取完成后,客户端会将所有数据汇总成一个 ClientFullEHR JSON 对象。该对象包含:
fhir:一个字典,其中键是 FHIR 资源类型(例如,“Patient”),值是相应的 FHIR 资源数组。attachments:一个已处理的附件对象数组,每个对象包括元数据(源资源、路径、内容类型)以及内容本身(contentBase64 用于原始数据,contentPlaintext 用于提取的文本)。#deliver-to-opener:$origin 哈希打开,则客户端会提示用户确认,然后使用 window.opener.postMessage(data, targetOrigin) 将 ClientFullEHR 对象发送回打开它的窗口。src/cli.ts)这种模式非常适合于本地运行 MCP 服务器,常与 Cursor 或其他命令行 AI 客户端工具一起使用。
--create-db 和 --db 标志运行命令行界面。这将启动一个临时的Web服务器,并使用上述相同的SMART on FHIR Web客户端逻辑来获取数据。与通过 postMessage 发送数据不同,它会将 ClientFullEHR 数据保存到本地SQLite数据库文件中。
# 示例:提取数据并保存到 data/my_record.sqlite
bun run src/cli.ts --create-db --db ./data/my_record.sqlite
按照提示(在浏览器中打开链接)连接到您的EHR。# 示例:使用保存的数据启动MCP服务器
bun run src/cli.ts --db ./data/my_record.sqlite
src/cli.ts 和数据库文件都使用绝对路径。
{
"mcpServers": {
"local-ehr": {
"name": "本地EHR搜索",
"command": "bun", // 或者bun的绝对路径
"args": [
"/home/user/projects/smart-mcp/src/cli.ts", // cli.ts的绝对路径
"--db",
"/home/user/projects/smart-mcp/data/my_record.sqlite" // 数据库文件的绝对路径
]
}
}
}
src/sse.ts / index.ts)这种模式运行一个持久化的服务器,适用于多个客户端可能通过网络连接的场景。它使用Server-Sent Events (SSE) 作为MCP通信通道。
/authorize、/token、/register 等)。ClientFullEHR 数据,并在整个客户端连接期间将其保留在内存中(或持久化会话中)。与Google地图集成,以在紧急情况下定位和评估医疗设施,帮助用户根据医疗需求、紧急程度和设施能力找到合适的医院和诊所。
一个模型上下文协议服务器,为语言模型提供对Strava API数据的访问,使它们能够查询和分析Strava上的运动员活动。
一个连接性测试服务器,通过克劳德模型上下文协议支持DICOM网络操作(如C-ECHO),并支持节点配置管理。
提供了对ClinicalTrials.gov AACT数据库的访问, enables分析临床试验数据、跟踪发展趋 势以及生成治疗景观洞察。
暂无描述。
利用大型语言模型分析用户的WeGene基因检测报告,通过自定义URI方案访问报告数据,并通过OAuth认证和API使用实现个人资料和报告管理。