使用说明
MCP分析服务器
一个安全的基于Python的REST API服务器,用于处理和分析医疗索赔处方(MCP)数据。该服务器通过易于使用的HTTP端点提供对不同医学专业、地理区域和个体处方者的处方模式的见解。
特性
- 由FastAPI提供支持的RESTful API端点
- 交互式API文档(Swagger UI和ReDoc)
- 使用Azure身份验证的安全数据库连接
- 对处方数据进行全面分析,包括:
- 医学专业统计
- 州级处方分析
- 顶级处方医生见解
- 基于环境的配置
- 抽象数据库连接层,增强安全性
- GitHub操作CI/CD管道
- Docker就绪部署
先决条件
- Python 3.11
- Azure SQL数据库实例
- Azure凭据(CLI登录或其他Azure身份验证方法)
- Git
- SQL Server ODBC驱动程序18
安装
- 克隆存储库:
git clone https://github.com/bob-omboto/mcp_server.git
cd mcp_server
- 创建并激活虚拟环境:
python -m venv .venv
.venv\Scripts\activate # Windows
source .venv/bin/activate # Linux/Mac
- 安装依赖项:
pip install --only-binary :all: -r requirements.txt
- 配置环境变量:
AZURE_SQL_SERVER=your_server.database.windows.net
AZURE_SQL_DATABASE=your_database
AZURE_SQL_DRIVER=ODBC Driver 18 for SQL Server
API终点
1.根端点(GET/)
- 返回欢迎信息和API信息
- 网址:
http://localhost:8000/
2.模式信息(GET/模式)
- 返回可用的SQL查询和数据库架构
- 网址:
http://localhost:8000/schema
3.处方者类型(GET/处方者类型)
- 列出不同类型的处方医生及其数量
- 网址:
http://localhost:8000/prescriber-types
4.顶级处方医生(GET/顶级处方医生)
- 返回最活跃的处方者
- 可选查询参数:
limit(默认值:10) - 网址:
http://localhost:8000/top-prescribers?limit=10
5.顶级州(GET/顶级州)
- 提供各州处方统计数据
- 可选查询参数:
limit(默认值:10) - 网址:
http://localhost:8000/top-states?limit=10
用法
- 启动FastAPI服务器:
python api.py
- 访问API文档:
- Swagger用户界面:
http://localhost:8000/docs - 重新记录:
http://localhost:8000/redoc
- 使用首选的HTTP客户端(curl、Postman等)发出API请求
项目结构
mcp_server/
├── .github/
│ └── workflows/
│ └── main.yml # GitHub Actions workflow
├── .gitignore
├── README.md
├── api.py # FastAPI application and endpoints
├── requirements.txt # Python dependencies
└── server.py # Core database functionality
安全功能
- 用于安全数据库身份验证的Azure标识
- 无硬编码凭据-环境变量中的所有敏感数据
- 抽象数据库连接层
- 安全的查询处理
- CI/CD配置的GitHub秘密
CI/CD管道
GitHub Actions工作流会自动执行:
- 设置Python 3.11
- 安装ODBC驱动程序
- 安装项目依赖项
- 运行测试(添加时)
- 部署应用程序
数据洞察
API为处方数据提供了丰富的见解:
- 按医学专业划分的索赔分布
- 地理处方模式
- 顶级处方分析
- 州级统计
- 处方者类型分析
发展
地方发展
- 按照安装中的说明克隆和设置项目
- 进行更改
- 本地测试API端点
- 按照常规提交消息提交更改
运行测试
(待添加测试套件)
贡献
- 分叉存储库
- 创建功能分支(
git checkout -b feature/amazing-feature) - 提交您的更改(
git commit -m 'feat: add amazing feature') - 推到分支(
git push origin feature/amazing-feature) - 打开拉取请求
许可证
支持
如需支持,请在GitHub存储库中打开问题。