这是一个面向医院慢病管理场景的本地可运行 PoC。当前项目的产品名定为 慢康智枢 ChroniCare OS。它不只是后端接口原型,而是一个带前端控制台、模拟 HIS 资源模型、文件持久化存储、精准风险分层、行为干预疗法包和 MDT 在线讨论的演示系统。
- 按疾病领域精准风险分层
- 心血管
- 糖尿病
- 认知/老年痴呆
- 呼吸
- 睡眠
- 肾脏
- 代谢
- 行为干预疗法包
- 运动疗法包
- 饮食疗法包
- 生活方式疗法包
- 睡眠改善包
- MDT 协作
- 自动生成 MDT 任务单
- 真人在线讨论
- 发言留痕
- 关闭会议后生成会议纪要
- 自动追加 care plan 修订版
- 更真实的医院接口模型
patient / conditions / observations / medications / encounters / careTeam
- 文件持久化存储
storage/his-records.jsonstorage/documents.jsonstorage/mdt-meetings.json
- 医院可演示前端控制台
- 三家医院切换
- 分角色工作台
- 专科医生
- 全科医生
- 健康管理师
- 患者队列
- 领域风险卡片
- 疗法包面板
- 临床计划摘要
- MDT 在线讨论区
- MedClaw 医疗智能能力
- 影像报告结构化解析与时序对比
- AI 病历自动生成草案
- 辅助诊断与病情预测
- 只读权限边界与审计事件留痕
- KG-Followup 追问能力
- EHR 引导的实体抽取
- DDX 驱动的候选诊断与推理路径
- KG 感知的 hard-case active ICL 示例选择
- 基于知识图谱的精准追问生成
- 问题整合与去冗余摘要
- 前端工作台可视化展示
- B2B2C 健康管理生态层
- 保险、银行、企业、互联网平台、赛事方多类付费方模型
- AI 全科医生、AI 精准就医、AI 体检报告解读等产品矩阵
- 患者权益旅程与服务模块编排
- 付费方-医院-用户三方联动演示视图
- GitHub 开源能力中台
- 健康管理、慢病管理、疾病预测相关仓库目录
- EHR/FHIR、时序风险、文本疾病预测、患者生成数据接入建议
- 按患者自动生成开源能力接入计划
- 真实数据适配链与本地预测服务
- HealthChain 风格 FHIR 资源整合
- SMART on FHIR 配置、动态 client registration、授权码、refresh token 与 scope 校验
- healthkit-on-fhir 风格患者生成数据接入
- Python 微服务化的 TemporAI 真实插件链:
ffill -> ts_standard_scaler -> nn_classifier - Python 微服务化的 TemporAI
time_to_event.ts_xgb时间到事件风险预测 - Python 微服务化的 PyHealth
SampleEHRDataset + RNN + Trainer训练链 - PyHealth
train / val / test split + pr_auc monitor + best.ckpt - Python 微服务化的 disease-prediction 风格文本风险分类
- HIS 字段映射预览
MedSphere/v1SmartEMR/v3CareBridge/v2
medical-agent-os/
.github/workflows/ # GitHub CI / Docker 发布
public/ # 前端控制台
src/
adapters/ # HIS 适配层
core/ # 文档库 / 事件代理 / 会议存储
data/ # 模拟医院资源数据
lib/ # ID / 存储工具
services/ # 慢病管理编排
storage/ # 运行期持久化文件
这个项目现在支持两条 GitHub 交付链,但要区分两件事:
GitHub Pages托管的是静态医院演示控制台Render / Railway运行的是完整的Node + Express + Python服务
- ci.yml
- push / PR 自动执行
pnpm build
- push / PR 自动执行
- deploy-pages.yml
main分支自动导出静态快照并发布到 GitHub Pages
- docker-publish.yml
- 主分支或 tag 自动推送镜像到
ghcr.io/mokangmedical/chronicdiseasemanagement
- 主分支或 tag 自动推送镜像到
- deploy-render.yml
- Docker 镜像发布成功后自动触发 Render Deploy Hook
- deploy-railway.yml
- 主分支提交后自动通过 Railway CLI 发布
- Dockerfile
- docker-compose.yml
- render.yaml
- railway.json
- DEPLOY_CHECKLIST.md
- GITHUB_BOOTSTRAP.md
- FIRST_DEPLOY_SEQUENCE.md
- RENDER_BLUEPRINT_SETUP.md
- .env.github.example
- scripts/01_first_push.sh
- scripts/02_set_github_secrets.sh
- scripts/03_trigger_and_verify.sh
- 把项目推到 GitHub 仓库
- 在 GitHub
Settings -> Pages中将 Source 设为GitHub Actions - 推送到
main后自动发布静态演示站到:https://mokangmedical.github.io/chronicdiseasemanagement/
- 在 GitHub Actions 中自动跑 CI
- 在主分支触发 Docker 发布到 GHCR
- Render 自动触发 Deploy Hook
- Railway 自动执行
railway up
- Pages 版是只读静态演示
- Pages 版展示完整的患者视图、风险卡片、疗法包、MedClaw、KG-Followup、B2B2C 生态、FHIR 适配摘要和模型训练摘要
- 工作流执行、MDT 发言、SMART on FHIR 授权与真实 Python 推理服务,仍需访问 Render 或 Railway 的完整部署版
在 GitHub 仓库 Settings -> Secrets and variables -> Actions 中配置:
RENDER_DEPLOY_HOOK_URL
RAILWAY_TOKENRAILWAY_PROJECT_IDRAILWAY_ENVIRONMENTRAILWAY_SERVICE
建议在 Render 中先创建一个 image-backed web service,并将镜像指向:
ghcr.io/mokangmedical/chronicdiseasemanagement:main
然后把 Render 生成的 Deploy Hook 配到 GitHub secret RENDER_DEPLOY_HOOK_URL。
建议先在 Railway 中创建项目、环境和服务,然后把项目级部署参数配置进 GitHub secrets。当前 workflow 会在 main/master 推送后执行:
railway up --ci --service="$RAILWAY_SERVICE" --environment="$RAILWAY_ENVIRONMENT" --project="$RAILWAY_PROJECT_ID"docker compose up --buildcd "/Users/linzhang/Desktop/ OPC/medical-agent-os"
pnpm install
pnpm run setup:predictor
pnpm start如果你要本地预览 GitHub Pages 版本,再执行:
pnpm run build:pages生成目录:
pages-dist/
如果你要把 TemporAI 的完整插件运行时也装上,再执行:
pnpm run setup:predictor:tempor-runtime这会补齐 hyperimpute / tsai / fastai / torch* 等依赖,让 TemporAI 不只是做 runtime probe,而是能在本地预测微服务里真实跑通 plugin registry 和 one-off classification 插件训练。
打开:
curl http://localhost:3010/api/dashboardcurl "http://localhost:3010/api/dashboard?hospitalId=beijing&workbenchRole=specialist-doctor"curl http://localhost:3010/api/patients/patient-wu-004/workspacecurl "http://localhost:3010/api/patients/patient-wu-004/workspace?workbenchRole=general-practitioner"curl http://localhost:3010/api/his/mappingscurl "http://localhost:3010/api/medclaw/patients/patient-chen-002/workspace?workbenchRole=specialist-doctor"curl http://localhost:3010/api/medclaw/patients/patient-wu-004/kg-followupcurl http://localhost:3010/api/ecosystem/overviewcurl http://localhost:3010/api/ecosystem/patients/patient-chen-002/journeycurl http://localhost:3010/api/github-capabilities/overviewcurl http://localhost:3010/api/github-capabilities/patients/patient-chen-002/plancurl http://localhost:3010/api/integrations/patients/patient-chen-002/adaptedcurl http://localhost:3010/.well-known/smart-configuration
curl http://localhost:3010/fhir/metadatacurl -X POST http://localhost:3010/oauth/register \
-H "Content-Type: application/json" \
-d '{
"client_name": "Demo SMART App",
"redirect_uris": ["http://127.0.0.1:8899/callback"],
"scope": "launch patient/*.read patient/Observation.read offline_access",
"grant_types": ["authorization_code", "refresh_token"]
}'curl -i "http://localhost:3010/oauth/authorize?client_id=demo-smart-app&redirect_uri=http://127.0.0.1:9999/callback&scope=launch%20patient/*.read%20offline_access&launch=patient-chen-002"
curl -X POST http://localhost:3010/oauth/token \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "grant_type=authorization_code&client_id=demo-smart-app&code=<code>&redirect_uri=http://127.0.0.1:9999/callback"
curl -X POST http://localhost:3010/oauth/token \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "grant_type=refresh_token&client_id=demo-smart-app&refresh_token=<refresh_token>"curl http://localhost:3010/api/predictions/patients/patient-chen-002预测结果会额外返回:
featureEngineering:静态特征、时序点数、时序信号、文本 top termspipelines.temporai:真实 TemporAI 插件链、cohort、时序特征维度与当前患者概率pipelines.temporai.timeToEvent*:7/30/90 天时间到事件风险pipelines.pyhealth:真实 PyHealthSampleEHRDataset、RNN 训练链、split、monitor、best checkpoint、验证/测试指标runtime.packages:temporai / pyhealth / pandas / numpy / scikit-learn运行时状态
curl -X POST http://localhost:3010/api/workflows/chronic-care/run/patient-wu-004curl http://localhost:3010/api/patients/patient-wu-004/riskcurl -X POST http://localhost:3010/api/patients/patient-wu-004/mdt-meetings \
-H "Content-Type: application/json" \
-d '{"topic":"吴美芳 慢病管理 MDT 在线讨论"}'curl -X POST http://localhost:3010/api/mdt-meetings/<meetingId>/messages \
-H "Content-Type: application/json" \
-d '{"clinicianId":"doc-zhou-003a","message":"建议 4 周后完成认知量表复评。"}'curl -X POST http://localhost:3010/api/mdt-meetings/<meetingId>/close \
-H "Content-Type: application/json" \
-d '{"decision":"继续以认知管理为主轴联合睡眠干预","followUpActions":["4 周后复测 MMSE/MoCA"]}'当前工作流如下:
HIS 接诊代理读取模拟医院资源数据- 写入
intake-note 风险分层代理输出疾病领域级risk-assessmentMDT 协调代理自动生成在线 MDT 会议与mdt-tasklist- 角色代理分别产出:
medical-plandiet-prescriptionexercise-prescriptionlifestyle-prescriptionsleep-prescriptioncare-coordination-note
- 汇总为
integrated-care-plan - MDT 真人讨论关闭后生成
mdt-meeting-summary - 自动追加
integrated-care-plan修订版
当前内置 4 个演示患者:
- 厦门大学附属慢病管理示范医院
- 张淑兰:高血压 + 糖尿病 + 肥胖
- 北京清华长庚智慧医疗中心
- 陈建国:心衰 + 慢性肾病 + 高血压
- 吴美芳:阿尔茨海默病早期 + 高血压 + 失眠障碍
- 江阴区域健康协同医院
- 李敏:慢阻肺 + 睡眠呼吸暂停 + 糖代谢异常
其中 吴美芳 适合演示“认知/老年痴呆 + 睡眠 + MDT”路径。
如果你继续推进到医院 PoC,我建议下一阶段直接补这几块:
- 用户/角色/权限体系
- 患者端随访与打卡入口
- 真实 HIS / EMR / LIS API 适配
- 数据库存储替换文件存储
- LLM 智能体接入
- 会诊结论签发与医嘱回写