项目简介

OMOPSync 是一个基于 Model Context Protocol (MCP) 的应用后端,旨在将大型语言模型 (LLM) 与医疗领域的 OMOP Common Data Model (CDM) 数据集成。它允许 LLM 通过预定义的工具访问、处理和分析 OMOP 数据,从而实现更智能、更便捷的医疗数据应用。

主要功能点

OMOPSync 作为 MCP 服务器,提供以下核心功能:

  • 数据库结构准备: 确保OMOP数据所需的数据库模式(schemas)正确创建。
  • 数据加载与转换 (ETL): 将原始 Synthea CSV 数据集加载并转换为标准的 OMOP CDM 格式。
  • 数据查询: 允许执行任意 SQL 查询,并以 JSON 格式返回结果,方便LLM解析。
  • 数据可视化: 根据 SQL 查询结果,生成图表(如线图、柱状图、热力图、散点图),并保存为图片文件。
  • 数据质量检查 (DQD): 运行全面的数据质量规则,评估OMOP数据的合规性和准确性。
  • 数据特征描述 (Achilles): 执行人群水平的数据分析,生成关于数据内容的标准报告。
  • 一键执行: 提供一个工具,按顺序执行所有关键的ETL和分析步骤。

这些功能都通过标准化的 MCP 工具接口暴露给 LLM 客户端。

安装步骤

  1. 克隆仓库:
    git clone https://github.com/aumsathwara/OMOPSync.git
    cd OMOPSync
  2. 创建并激活Python虚拟环境:
    python -m venv .venv
    # Windows: .venv\Scripts\activate
    # macOS/Linux: source .venv/bin/activate
  3. 安装依赖:
    pip install -r requirements.txt
  4. 设置环境变量:
    • 设置您的 Gemini API 密钥:
      export GEMINI_API_KEY="YOUR_API_KEY"
      # 或者在 .env 文件中设置
    • 设置 R 的安装路径(如果未在系统路径中):
      export R_HOME="/path/to/your/R/installation"
  5. 安装并配置 PostgreSQL 数据库:
    • 确保安装 PostgreSQL 15+ 版本。
    • 创建一个名为 'omop' 的数据库。
    • 根据 'server.py' 中的配置(默认为用户 'postgres',密码 'user'),确保数据库可访问,或修改配置。
  6. 准备 Synthea 数据:
    • 下载 Synthea 生成的 CSV 数据。
    • 将 CSV 文件放在项目的 'data/csv/' 目录下。
  7. 准备 OHDSI 词汇表:
    • 下载 OHDSI 标准化词汇表 CSV 文件。
    • 将 CSV 文件放在项目的 'vocabulary_csv/' 目录下。
  8. 安装 R 及其依赖:
    • 确保安装 R 4.3 或更新版本。
    • 根据需要安装 Rtools (Windows) 或构建工具 (Linux/Mac) 以便编译 R 包。项目的 ETL 脚本会在首次运行时自动尝试安装所需的 R 包(ETL-Synthea, Achilles, DataQualityDashboard)。

服务器配置

OMOPSync MCP 服务器 ('server.py') 通常作为 MCP 客户端 ('client.py') 的子进程启动。对于任何兼容的 MCP 客户端,连接到此服务器所需的配置信息如下:

  • 服务器名称 (server name): OMOPSync
  • 启动命令 (command): 用于执行 Python 脚本的可执行文件路径,通常是 'python' 或 'python3'。
  • 命令参数 (args): 启动服务器脚本所需的参数列表,对于此项目,参数为 '["server.py"]'。
  • 传输协议 (transport): stdio (标准输入/输出)

典型的客户端配置(JSON格式)可能类似于:

{
  "name": "OMOPSync Server",
  "description": "Connects LLM to OMOP data via MCP",
  "transport": "stdio",
  "params": {
    "command": "python",
    "args": ["path/to/OMOPSync/server.py"],
    "env": {} // 可选:设置环境变量
  }
}

请注意,'path/to/OMOPSync/server.py' 应替换为实际的 'server.py' 文件路径。

基本使用方法

  1. 完成安装和配置步骤。
  2. 在终端中,确保您已激活Python虚拟环境并位于项目根目录。
  3. 使用客户端脚本启动服务器并开始交互:
    python client.py server.py
  4. 客户端连接成功后,您将看到可用的工具列表。
  5. 输入自然语言查询,LLM 将解析您的请求并调用相应的 MCP 工具。例如:
    • 'Ensure all schemas in database' (调用 'ensure_schemas' 工具)
    • 'Run etl process for me' (调用 'run_etl' 工具)
    • 'Get me list of all person from cdm54 schema and person table' (LLM可能会将此转换为调用 'query_database' 工具并提供适当的SQL)
    • 'Plot admissions by sex bar chart' (LLM可能会将此转换为调用 'plot_query' 工具并提供适当的SQL和参数)
    • 输入 'quit' 退出客户端。

信息

分类

数据库与文件