小明同学的技术博客

  • 首页
  • 大模型
  • 技术
  • 攻略
  • 关于
  • 隐私政策
碎碎念
专注于分享各种有趣的东西
  1. 首页
  2. 技术文档
  3. 正文

AI智慧医疗随访系统 — 项目规划文档

2026年5月27日 52点热度 0人点赞 0条评论

目录

  1. 项目概述
  2. 系统架构设计
  3. 核心功能模块
  4. AI能力设计
  5. 数据库设计
  6. 项目实施路线图
  7. 合规与安全
  8. 附录

1. 项目概述

1.1 项目名称

AI智慧医疗随访系统(AI Smart Medical Follow-up System)

1.2 项目目标

构建一套以大语言模型(LLM)为核心的智能随访平台,实现患者出院后随访工作的自动化、智能化、标准化,降低医护人员随访工作量,提高患者依从性和满意度,最终提升慢病管理和康复效果。

1.3 核心价值

维度传统随访AI智慧随访
效率人工逐个电话随访,每人每天约30-50例AI并行处理,单日可触达数千例
覆盖抽样随访,覆盖率低全量覆盖,无遗漏
及时性延迟数天甚至数周实时触发,秒级响应
个性化标准化话术,千人一面根据患者画像动态调整话术
数据纸质/表单记录,难以分析结构化采集,实时分析预警
成本大量护理人力投入人力成本降低60%-80%

1.4 解决的痛点

  1. 人力瓶颈:护理人员不足,随访工作量大,导致覆盖率低
  2. 质量参差:不同随访人员水平不一,沟通质量难以保证
  3. 数据孤岛:随访数据分散在Excel、纸质表格中,无法形成闭环
  4. 预警滞后:患者异常情况发现晚,错过最佳干预窗口
  5. 合规风险:缺乏标准化流程,医疗文书记录不完整
  6. 患者体验差:被动等待回访,缺乏互动感和获得感

2. 系统架构设计

2.1 整体技术架构图

┌─────────────────────────────────────────────────────────────────────┐
│                        用户访问层 (Presentation)                     │
│  ┌──────────┐  ┌──────────┐  ┌──────────┐  ┌──────────────────┐   │
│  │ Web管理台 │  │ 小程序端  │  │ 患者H5端 │  │ 飞书/钉钉工作台  │   │
│  └──────────┘  └──────────┘  └──────────┘  └──────────────────┘   │
└────────────────────────────────┬────────────────────────────────────┘
                                 │ HTTPS / WSS
┌────────────────────────────────▼────────────────────────────────────┐
│                       API网关层 (Gateway)                           │
│  ┌──────────────────────────────────────────────────────────────┐  │
│  │  Kong / APISIX  —  鉴权 · 限流 · 路由 · 日志 · 灰度发布     │  │
│  └──────────────────────────────────────────────────────────────┘  │
└────────────────────────────────┬────────────────────────────────────┘
                                 │
┌────────────────────────────────▼────────────────────────────────────┐
│                     业务服务层 (Microservices)                      │
│                                                                    │
│  ┌─────────────┐ ┌──────────────┐ ┌──────────────┐ ┌───────────┐ │
│  │ 随访任务服务  │ │ 对话引擎服务  │ │ 数据采集服务  │ │ 预警服务   │ │
│  │ FollowUpSvc │ │ ChatEngineSvc│ │ DataCollSvc  │ │ AlertSvc  │ │
│  └─────────────┘ └──────────────┘ └──────────────┘ └───────────┘ │
│  ┌─────────────┐ ┌──────────────┐ ┌──────────────┐ ┌───────────┐ │
│  │ 报告生成服务  │ │ 用户权限服务  │ │ 患者画像服务  │ │ 消息推送  │ │
│  │ ReportSvc   │ │ AuthSvc      │ │ ProfileSvc   │ │ NotifySvc │ │
│  └─────────────┘ └──────────────┘ └──────────────┘ └───────────┘ │
│                                                                    │
│  技术栈: Spring Boot / Go · gRPC · Redis · RabbitMQ/Kafka         │
└────────────────────────────────┬────────────────────────────────────┘
                                 │
┌────────────────────────────────▼────────────────────────────────────┐
│                         AI能力层 (AI Layer)                         │
│                                                                    │
│  ┌──────────────────────────────────────────────────────────────┐  │
│  │                   LLM 推理引擎                               │  │
│  │  ┌──────────┐  ┌──────────┐  ┌──────────┐  ┌────────────┐  │  │
│  │  │ 通义千问  │  │ DeepSeek │  │ 本地部署   │  │  模型路由   │  │  │
│  │  │ Qwen-Max │  │ Chat     │  │ Qwen-7B  │  │  Gateway   │  │  │
│  │  └──────────┘  └──────────┘  └──────────┘  └────────────┘  │  │
│  └──────────────────────────────────────────────────────────────┘  │
│  ┌──────────┐  ┌──────────┐  ┌──────────┐  ┌──────────────────┐  │
│  │ ASR语音   │  │ TTS语音   │  │ NER/意图  │  │ 情感分析/RAG    │  │
│  │ 识别      │  │ 合成      │  │ 识别     │  │ 知识检索增强    │  │
│  └──────────┘  └──────────┘  └──────────┘  └──────────────────┘  │
│                                                                    │
│  技术栈: Python · FastAPI · vLLM · LangChain · Milvus/Chroma     │
└────────────────────────────────┬────────────────────────────────────┘
                                 │
┌────────────────────────────────▼────────────────────────────────────┐
│                       数据层 (Data Layer)                           │
│                                                                    │
│  ┌──────────┐  ┌──────────┐  ┌──────────┐  ┌──────────────────┐  │
│  │PostgreSQL │  │  Redis   │  │ ClickHouse│  │ MinIO/OSS       │  │
│  │ 业务主库  │  │ 缓存/会话 │  │ 分析数仓  │  │ 对象存储        │  │
│  └──────────┘  └──────────┘  └──────────┘  └──────────────────┘  │
│  ┌──────────────────────────────────────────────────────────────┐  │
│  │            Elasticsearch — 日志 · 全文检索 · 审计             │  │
│  └──────────────────────────────────────────────────────────────┘  │
└─────────────────────────────────────────────────────────────────────┘
                                 │
┌────────────────────────────────▼────────────────────────────────────┐
│                    外部系统对接层 (Integration)                     │
│                                                                    │
│  ┌──────────┐  ┌──────────┐  ┌──────────┐  ┌──────────────────┐  │
│  │ HIS系统   │  │ EMR系统   │  │ LIS/PACS │  │ 医保/公卫平台    │  │
│  │ (万达信息) │  │ 电子病历  │  │ 检验影像 │  │ 数据上报         │  │
│  └──────────┘  └──────────┘  └──────────┘  └──────────────────┘  │
│                                                                    │
│  对接方式: HL7/FHIR · WebService · REST API · 数据库视图/Dblink  │
└─────────────────────────────────────────────────────────────────────┘

2.2 前端技术选型

端技术栈说明
管理后台Vue 3 + Vite + Element Plus随访管理、数据看板、系统配置
患者端微信小程序 / UniApp随访问卷、健康数据上报、AI对话
医护人员端飞书/钉钉小程序移动端处理随访任务、异常预警
数据可视化ECharts + DataV随访数据大屏、质量监控看板

2.3 后端技术选型

层级技术选型理由
主服务Spring Boot 3.x (Java 17) / Go企业级稳定性,与HIS对接生态成熟
AI服务Python FastAI / FastAPIAI/ML生态丰富,模型部署便捷
通信gRPC(内部)+ REST(外部)高性能内部通信,标准外部接口
消息队列RabbitMQ / Kafka随访任务调度、异步消息处理
缓存Redis 7.x Cluster会话状态、限流、热点数据缓存
任务调度XXL-JOB定时随访任务触发、批量处理

2.4 AI层技术选型

能力技术方案备注
对话大模型通义千问 Qwen-Max / DeepSeek-Chat中文医疗场景优化
本地小模型Qwen-7B-Chat(私有部署)敏感数据场景、低延迟需求
语音识别 ASRParaformer / Whisper支持方言识别
语音合成 TTSCosyVoice / ChatTTS自然流畅的语音输出
向量数据库Milvus / ChromaDB医学知识库RAG检索
意图识别LLM + 微调分类器随访意图路由、紧急程度判断
RAG框架LangChain + LlamaIndex医学知识增强生成

2.5 数据层技术选型

组件选型用途
业务数据库PostgreSQL 16患者信息、随访记录、系统配置
分析数仓ClickHouse随访数据聚合分析、报表查询
搜索引擎Elasticsearch 8.x全文检索、审计日志、对话搜索
对象存储MinIO / 阿里云OSS语音录音、报告PDF、影像文件

2.6 与HIS系统对接方案

对接架构

┌─────────────────────────────────────────────────┐
│                  HIS系统 (万达信息)               │
│  ┌─────┐ ┌─────┐ ┌─────┐ ┌──────┐ ┌─────────┐ │
│  │门诊  │ │住院  │ │医嘱  │ │检查   │ │诊断信息  │ │
│  └──┬──┘ └──┬──┘ └──┬──┘ └──┬───┘ └────┬────┘ │
│     └───────┴───────┴───────┴───────────┘      │
│                        │                        │
│              ┌─────────▼─────────┐              │
│              │   HIS数据接口层    │              │
│              │  (HL7/WebService) │              │
│              └─────────┬─────────┘              │
└────────────────────────┼────────────────────────┘
                         │
          ┌──────────────▼──────────────┐
          │     随访系统数据中台         │
          │  ┌────────────────────────┐ │
          │  │ ETL数据同步服务         │ │
          │  │ - 定时全量同步          │ │
          │  │ - 增量实时同步(CDC)     │ │
          │  │ - HL7 FHIR消息转换     │ │
          │  └────────────────────────┘ │
          │  ┌────────────────────────┐ │
          │  │ 数据标准化映射          │ │
          │  │ - ICD-10诊断编码       │ │
          │  │ - SNOMED CT术语映射    │ │
          │  │ - 药品编码统一         │ │
          │  └────────────────────────┘ │
          └─────────────────────────────┘

对接方式详解

方式适用场景实时性复杂度
HL7 FHIR标准化数据交换(优先)近实时中
WebService/SOAP万达信息HIS传统接口近实时低
数据库视图/Dblink批量数据同步T+1低
CDC(Debezium)实时增量同步实时高
REST API新一代HIS/互联网医院实时中

核心对接数据

  • 患者基本信息:姓名、性别、年龄、联系方式、身份证号、医保类型
  • 住院/就诊记录:入院日期、出院日期、诊断(ICD-10)、手术记录
  • 医嘱信息:用药医嘱、检查检验医嘱、治疗方案
  • 检查检验结果:血常规、生化、影像报告等
  • 出院小结:出院诊断、出院带药、复诊计划

3. 核心功能模块

3.1 智能随访任务管理

功能概述

基于患者疾病类型、出院信息和临床路径,自动生成个性化随访计划,支持多渠道触达(电话、短信、微信、APP推送)。

核心子功能

子功能说明
随访模板引擎按病种/科室预置随访模板,支持自定义问题集和时间线
自动任务生成出院时自动触发随访计划,按临床路径排布随访节点
智能排程根据患者偏好时间、节假日、历史接听率自动选择最佳触达时间
多渠道触达电话(AI外呼)→ 短信 → 微信推送 → 人工兜底
任务状态跟踪待执行/进行中/已完成/失访/拒绝,全生命周期管理
智能重试失败自动重试策略(间隔递增、渠道切换、时段调整)

随访计划规则引擎示例

# 糖尿病术后随访模板
template:
  name: "糖尿病术后随访"
  applicable_diagnosis: ["E11", "E14"]  # ICD-10糖尿病编码
  schedule:
    - offset_days: 3
      channel: phone
      questions: [symptom_check, medication_compliance]
    - offset_days: 14
      channel: wechat
      questions: [blood_sugar_report, diet_assessment]
    - offset_days: 30
      channel: phone
      questions: [comprehensive_review, lab_results]
    - offset_days: 90
      channel: phone
      questions: [long_term_outcome, quality_of_life]
  escalation:
    no_answer_retry: 3
    fallback_to_human: true

3.2 AI语音/文字随访

功能概述

基于大语言模型驱动的多轮对话引擎,模拟专业护士进行标准化随访,支持语音和文字两种交互方式。

对话流程设计

┌──────────────────────────────────────────────────────┐
│                   AI随访对话流程                       │
│                                                      │
│  ┌─────────┐                                         │
│  │ 开场白   │  根据患者身份个性化问候                  │
│  └────┬────┘                                         │
│       ▼                                              │
│  ┌─────────┐    ┌─────────────┐                     │
│  │ 症状询问 │───▶│ 结构化采集   │                    │
│  └────┬────┘    │ - 疼痛评分   │                    │
│       │         │ - 症状频率   │                    │
│       │         │ - 用药情况   │                    │
│       │         └──────┬──────┘                     │
│       ▼                ▼                            │
│  ┌─────────┐    ┌─────────────┐                    │
│  │ 自由问答 │───▶│ 意图识别    │                     │
│  └────┬────┘    │ - 就医咨询   │                    │
│       │         │ - 药物咨询   │                    │
│       │         │ - 紧急求助   │                    │
│       │         └──────┬──────┘                     │
│       ▼                ▼                            │
│  ┌─────────┐    ┌─────────────┐                    │
│  │ 风险评估 │───▶│ 异常预警    │                    │
│  └────┬────┘    └──────┬──────┘                     │
│       ▼                ▼                            │
│  ┌─────────┐    ┌─────────────┐                    │
│  │ 结束语   │───▶│ 总结生成    │                    │
│  └─────────┘    └─────────────┘                    │
└──────────────────────────────────────────────────────┘

核心能力

  • 语音交互:ASR实时转写 → LLM生成回复 → TTS语音输出,支持打断
  • 文字交互:微信/小程序内嵌对话窗口,支持图文混排
  • 多轮对话管理:上下文记忆、话题切换、意图回归
  • 对话安全:敏感词过滤、医疗建议免责提示、紧急情况自动转人工

3.3 随访数据采集与分析

数据采集维度

维度采集内容采集方式
症状评估疼痛VAS评分、症状频率/强度、功能状态AI对话结构化提取
用药依从是否按时服药、剂量、不良反应AI对话 + 患者自报
生理指标血压、血糖、体重、体温等小程序录入 + 智能设备同步
生活方式饮食、运动、睡眠、吸烟饮酒AI对话评估
心理状态焦虑/抑郁筛查(PHQ-9/GAD-7)标准量表自动施测
满意度就医体验、随访体验结构化问卷

分析看板

  • 随访完成率:按科室/病种/时间段统计
  • 患者依从性趋势:用药依从率、复诊率变化
  • 健康指标分布:血压/血糖达标率、异常比例
  • 风险分层统计:高/中/低风险患者分布及变化
  • AI对话质量:满意度评分、对话轮次、平均时长

3.4 异常预警与干预

预警规则体系

┌──────────────────────────────────────────────────────────┐
│                    三级预警机制                            │
│                                                          │
│  🔴 红色预警(紧急)                                      │
│  ├─ 患者主诉胸痛、呼吸困难等急性症状                       │
│  ├─ 生命体征严重异常(收缩压>180/60, 血糖<3.9/>16.7)     │
│  ├─ 自杀倾向/严重抑郁筛查阳性                             │
│  └─ 处置: 立即转人工 + 通知主管医生 + 推送急诊建议         │
│                                                          │
│  🟡 黄色预警(关注)                                      │
│  ├─ 症状持续恶化(连续2次随访评分上升)                    │
│  ├─ 用药依从性差(漏服>30%)                              │
│  ├─ 指标轻度异常但未达紧急阈值                            │
│  └─ 处置: 标记关注 + 纳入重点随访 + 通知责任护士           │
│                                                          │
│  🟢 绿色正常                                             │
│  ├─ 指标在正常范围                                       │
│  ├─ 依从性良好                                           │
│  └─ 处置: 常规随访 + 健康教育推送                         │
└──────────────────────────────────────────────────────────┘

干预闭环

  1. 自动识别:AI实时分析对话内容和生理指标,触发预警
  2. 分级通知:按预警级别推送至对应责任人(护士→主管→科主任)
  3. 干预执行:电话回访 / 约诊提醒 / 急诊转介
  4. 效果跟踪:干预后48小时内回访确认
  5. 闭环归档:完整记录预警→干预→结果链路

3.5 随访报告自动生成

报告类型

报告类型内容受众触发方式
患者个人报告随访摘要、健康建议、复诊提醒患者每次随访后自动生成
单患者随访总结阶段性随访回顾、健康趋势分析主管医生阶段性自动/手动
科室随访质量报告完成率、异常率、患者满意度科主任/护士长每周/月自动生成
疾病群体分析报告病种维度的健康趋势、干预效果医务科/质控科每季度自动生成
科研数据报告脱敏后的队列数据、统计分析科研人员按需申请

报告生成流程

随访数据汇总 → LLM摘要生成 → 结构化报告模板填充 → 医生审核确认 → 推送/归档

4. AI能力设计

4.1 大模型在随访中的应用场景

应用场景模型能力输入输出
智能对话生成多轮对话、上下文理解患者回复 + 历史上下文下一轮对话回复
结构化信息提取NER、关系抽取非结构化对话文本结构化字段(症状、用药等)
意图识别分类、路由患者输入文本意图类别 + 置信度
风险评估推理、判断对话内容 + 体检指标风险等级 + 建议
报告摘要文本生成、总结多次随访记录结构化随访报告
知识问答RAG检索增强患者问题 + 医学知识库准确的医学回答

4.2 患者画像与个性化随访策略

患者画像维度

{
  "基础属性": {
    "年龄": 65,
    "性别": "男",
    "教育程度": "初中",
    "居住状况": "独居",
    "语言偏好": "普通话",
    "联系方式偏好": "电话"
  },
  "疾病画像": {
    "主诊断": "2型糖尿病",
    "合并症": ["高血压", "冠心病"],
    "手术史": "冠脉支架植入术",
    "病程": "8年",
    "当前用药": ["二甲双胍", "阿托伐他汀", "阿司匹林"]
  },
  "行为画像": {
    "历史依从性评分": 0.72,
    "历史随访配合度": "中等",
    "最佳联系时段": "上午9-11点",
    "平均对话时长": "8分钟",
    "语言理解能力": "中等"
  },
  "风险画像": {
    "当前风险等级": "中",
    "主要风险因素": ["独居", "依从性一般"],
    "上次异常记录": "2026-04-15 血糖偏高"
  }
}

个性化策略引擎

患者类型随访频率对话风格关注重点触达渠道
高龄独居每周1次温和耐心、语速慢跌倒风险、用药、孤独感电话为主
中年上班族每2周1次简洁高效用药依从、饮食运动微信为主
高风险患者每3天1次专业严谨症状变化、指标监测电话+短信
康复期患者每月1次鼓励支持功能恢复、心理状态小程序

4.3 医学术语理解与意图识别

意图分类体系

随访对话意图
├── 🟢 健康汇报
│   ├── 症状描述(主诉、现病史)
│   ├── 指标汇报(自测数据)
│   ├── 用药反馈(依从性、不良反应)
│   └── 生活方式反馈
├── 🟡 咨询求助
│   ├── 药物咨询(用法、副作用、替代)
│   ├── 症状解读(是否正常、需否就医)
│   ├── 就医指导(何时复诊、挂什么科)
│   └── 康复指导(饮食、运动、注意事项)
├── 🔴 紧急求助
│   ├── 急性症状(胸痛、呼吸困难、出血)
│   ├── 严重不良反应(过敏、晕厥)
│   ├── 心理危机(自杀意念、严重焦虑抑郁)
│   └── 其他紧急情况
├── ⚪ 一般交流
│   ├── 感谢/反馈
│   ├── 预约相关
│   └── 其他/无关
└── ❌ 负面反馈
    ├── 抱怨不满
    ├── 拒绝随访
    └── 投诉建议

医学术语处理

  • 同义词归一:「高血压」=「血压高」=「血压偏高」=「Hypertension」
  • 模糊表述解析:「最近头有点晕」→ 症状:头晕, 程度:轻度, 持续:近期
  • 量表自动施测:根据疾病类型自动选择PHQ-9、GAD-7等标准量表
  • 用药名称映射:「降糖药」→ 具体药品列表(二甲双胍、格列美脲等)

4.4 情感分析与风险评估

情感分析维度

维度检测内容应用
整体情绪正面/中性/负面调整对话策略
焦虑程度轻度/中度/重度焦虑触发心理干预
抑郁筛查抑郁倾向检测转介精神科评估
疼痛表达疼痛强度和性质加强疼痛管理
求助意愿是否主动寻求帮助优先响应处理

风险评估模型

风险评分 = f(症状严重度, 指标偏离度, 依从性, 合并症数, 年龄, 独居状态, 情感状态)

风险等级:
  高危 (Score ≥ 80): 立即转人工 + 通知医生
  中危 (60 ≤ Score < 80): 加密随访 + 标记关注
  低危 (40 ≤ Score < 60): 常规随访
  正常 (Score < 40): 标准随访流程

5. 数据库设计

5.1 ER关系概览

患者(Patient) 1──N 出院记录(DischargeRecord)
出院记录 1──N 随访计划(FollowUpPlan)
随访计划 1──N 随访任务(FollowUpTask)
随访任务 1──1 随访记录(FollowUpRecord)
随访记录 1──N 对话消息(ChatMessage)
随访记录 1──N 采集数据(CollectedData)
随访记录 1──0..1 预警记录(AlertRecord)
随访记录 1──0..1 随访报告(FollowUpReport)

5.2 关键表结构

5.2.1 患者信息表 (patient)

CREATE TABLE patient (
    id                  BIGSERIAL PRIMARY KEY,
    patient_no          VARCHAR(32) NOT NULL UNIQUE,     -- 患者编号
    name                VARCHAR(64) NOT NULL,            -- 姓名
    gender              SMALLINT NOT NULL,                -- 性别: 1=男 2=女
    birth_date          DATE,                             -- 出生日期
    id_card_no          VARCHAR(18),                      -- 身份证号(加密存储)
    phone               VARCHAR(20) NOT NULL,             -- 联系电话(加密存储)
    phone_encrypted     VARCHAR(128),                     -- 加密后的电话
    address             VARCHAR(256),                     -- 联系地址
    emergency_contact   VARCHAR(64),                      -- 紧急联系人
    emergency_phone     VARCHAR(20),                      -- 紧急联系电话
    insurance_type      VARCHAR(32),                      -- 医保类型
    insurance_no        VARCHAR(32),                      -- 医保号
    education_level     VARCHAR(32),                      -- 教育程度
    marital_status      VARCHAR(16),                      -- 婚姻状况
    occupation          VARCHAR(64),                      -- 职业
    living_condition    VARCHAR(32),                      -- 居住状况
    language_preference VARCHAR(16) DEFAULT 'zh-CN',      -- 语言偏好
    contact_preference  VARCHAR(32) DEFAULT 'phone',      -- 联系偏好
    best_contact_time   VARCHAR(32),                      -- 最佳联系时段
    risk_level          SMALLINT DEFAULT 0,                -- 当前风险等级
    tags                JSONB,                             -- 自定义标签
    his_patient_id      VARCHAR(64),                      -- HIS系统患者ID
    status              SMALLINT DEFAULT 1,                -- 状态: 1=正常 0=注销
    created_at          TIMESTAMP DEFAULT NOW(),
    updated_at          TIMESTAMP DEFAULT NOW()
);

CREATE INDEX idx_patient_phone ON patient(phone_encrypted);
CREATE INDEX idx_patient_his_id ON patient(his_patient_id);
CREATE INDEX idx_patient_risk ON patient(risk_level);

5.2.2 出院记录表 (discharge_record)

CREATE TABLE discharge_record (
    id                  BIGSERIAL PRIMARY KEY,
    patient_id          BIGINT NOT NULL REFERENCES patient(id),
    discharge_no        VARCHAR(32) NOT NULL UNIQUE,      -- 出院号
    admission_date      DATE NOT NULL,                    -- 入院日期
    discharge_date      DATE NOT NULL,                    -- 出院日期
    department          VARCHAR(64) NOT NULL,             -- 出院科室
    attending_doctor    VARCHAR(64),                      -- 主管医生
    primary_diagnosis   VARCHAR(256) NOT NULL,            -- 主诊断(ICD-10)
    diagnosis_codes     JSONB,                             -- 诊断编码列表
    secondary_diagnosis VARCHAR(512),                     -- 次诊断
    surgery_name        VARCHAR(256),                     -- 手术名称
    surgery_date        DATE,                              -- 手术日期
    discharge_summary   TEXT,                              -- 出院小结
    discharge_medications JSONB,                          -- 出院带药
    follow_up_advice    TEXT,                              -- 出院医嘱/复诊建议
    next_visit_date     DATE,                              -- 建议复诊日期
    condition_at_discharge VARCHAR(64),                    -- 出院时状况
    his_admission_id    VARCHAR(64),                      -- HIS住院号
    status              SMALLINT DEFAULT 1,
    created_at          TIMESTAMP DEFAULT NOW(),
    updated_at          TIMESTAMP DEFAULT NOW()
);

CREATE INDEX idx_discharge_patient ON discharge_record(patient_id);
CREATE INDEX idx_discharge_date ON discharge_record(discharge_date);
CREATE INDEX idx_discharge_dept ON discharge_record(department);

5.2.3 随访计划表 (follow_up_plan)

CREATE TABLE follow_up_plan (
    id                  BIGSERIAL PRIMARY KEY,
    plan_name           VARCHAR(128) NOT NULL,            -- 计划名称
    patient_id          BIGINT NOT NULL REFERENCES patient(id),
    discharge_record_id BIGINT REFERENCES discharge_record(id),
    template_id         BIGINT REFERENCES follow_up_template(id),
    disease_category    VARCHAR(64),                      -- 病种分类
    start_date          DATE NOT NULL,                    -- 计划开始日期
    end_date            DATE,                              -- 计划结束日期
    total_sessions      INT NOT NULL DEFAULT 1,           -- 总随访次数
    completed_sessions  INT NOT NULL DEFAULT 0,           -- 已完成次数
    frequency_rule      JSONB,                             -- 频率规则
    channel_preference  JSONB,                             -- 渠道偏好
    assigned_nurse_id   BIGINT,                            -- 责任护士ID
    assigned_doctor_id  BIGINT,                            -- 责任医生ID
    status              SMALLINT DEFAULT 1,                -- 1=进行中 2=已完成 3=已暂停 0=已取消
    created_by          BIGINT,
    created_at          TIMESTAMP DEFAULT NOW(),
    updated_at          TIMESTAMP DEFAULT NOW()
);

CREATE INDEX idx_plan_patient ON follow_up_plan(patient_id);
CREATE INDEX idx_plan_status ON follow_up_plan(status);
CREATE INDEX idx_plan_nurse ON follow_up_plan(assigned_nurse_id);

5.2.4 随访任务表 (follow_up_task)

CREATE TABLE follow_up_task (
    id                  BIGSERIAL PRIMARY KEY,
    plan_id             BIGINT NOT NULL REFERENCES follow_up_plan(id),
    patient_id          BIGINT NOT NULL REFERENCES patient(id),
    task_seq            INT NOT NULL,                     -- 任务序号(第几次随访)
    scheduled_date      DATE NOT NULL,                    -- 计划执行日期
    scheduled_time      TIME,                              -- 计划执行时间
    channel             VARCHAR(32) NOT NULL,             -- 执行渠道: phone/sms/wechat/manual
    questions           JSONB NOT NULL,                    -- 需要采集的问题列表
    questionnaire_id    BIGINT,                            -- 关联问卷ID
    retry_count         INT DEFAULT 0,                    -- 已重试次数
    max_retry           INT DEFAULT 3,                    -- 最大重试次数
    next_retry_at       TIMESTAMP,                         -- 下次重试时间
    status              SMALLINT DEFAULT 0,                -- 0=待执行 1=执行中 2=已完成 3=失败 4=跳过
    started_at          TIMESTAMP,
    completed_at        TIMESTAMP,
    failure_reason      VARCHAR(256),
    created_at          TIMESTAMP DEFAULT NOW(),
    updated_at          TIMESTAMP DEFAULT NOW()
);

CREATE INDEX idx_task_plan ON follow_up_task(plan_id);
CREATE INDEX idx_task_patient ON follow_up_task(patient_id);
CREATE INDEX idx_task_schedule ON follow_up_task(scheduled_date, status);
CREATE INDEX idx_task_retry ON follow_up_task(next_retry_at) WHERE status = 0;

5.2.5 随访记录表 (follow_up_record)

CREATE TABLE follow_up_record (
    id                  BIGSERIAL PRIMARY KEY,
    task_id             BIGINT NOT NULL REFERENCES follow_up_task(id),
    plan_id             BIGINT NOT NULL REFERENCES follow_up_plan(id),
    patient_id          BIGINT NOT NULL REFERENCES patient(id),
    channel             VARCHAR(32) NOT NULL,             -- 实际执行渠道
    interaction_type    VARCHAR(32) NOT NULL,             -- 交互方式: voice/text/hybrid
    started_at          TIMESTAMP NOT NULL,               -- 对话开始时间
    ended_at            TIMESTAMP,                        -- 对话结束时间
    duration_seconds    INT,                              -- 对话时长(秒)
    turn_count          INT DEFAULT 0,                    -- 对话轮次
    summary             TEXT,                             -- AI生成的对话摘要
    risk_score          DECIMAL(5,2),                     -- 风险评分
    risk_level          SMALLINT,                         -- 风险等级
    emotion_score       DECIMAL(3,2),                     -- 情感评分 (-1到1)
    patient_satisfaction SMALLINT,                        -- 患者满意度 (1-5)
    ai_confidence       DECIMAL(3,2),                     -- AI置信度
    human_reviewed      BOOLEAN DEFAULT FALSE,            -- 是否经过人工审核
    reviewed_by         BIGINT,                           -- 审核人
    reviewed_at         TIMESTAMP,
    audio_file_url      VARCHAR(512),                     -- 语音录音文件地址
    transcription       TEXT,                              -- 语音转文字全文
    raw_data            JSONB,                             -- 原始对话数据
    status              SMALLINT DEFAULT 1,                -- 1=正常 2=待审核 0=作废
    created_at          TIMESTAMP DEFAULT NOW()
);

CREATE INDEX idx_record_task ON follow_up_record(task_id);
CREATE INDEX idx_record_patient ON follow_up_record(patient_id);
CREATE INDEX idx_record_time ON follow_up_record(started_at);
CREATE INDEX idx_record_risk ON follow_up_record(risk_level);

5.2.6 对话消息表 (chat_message)

CREATE TABLE chat_message (
    id                  BIGSERIAL PRIMARY KEY,
    record_id           BIGINT NOT NULL REFERENCES follow_up_record(id),
    sequence_no         INT NOT NULL,                     -- 消息序号
    role                VARCHAR(16) NOT NULL,             -- 角色: patient/ai/nurse/system
    content_type        VARCHAR(32) NOT NULL,             -- 类型: text/voice/image/option
    content             TEXT NOT NULL,                     -- 消息内容
    audio_url           VARCHAR(512),                     -- 语音文件URL
    audio_duration_ms   INT,                              -- 语音时长毫秒
    intent              VARCHAR(64),                      -- AI识别的意图
    entities            JSONB,                             -- 提取的实体信息
    emotion             VARCHAR(32),                      -- 情感标签
    confidence          DECIMAL(3,2),                     -- 置信度
    metadata            JSONB,                             -- 扩展元数据
    created_at          TIMESTAMP DEFAULT NOW()
);

CREATE INDEX idx_message_record ON chat_message(record_id, sequence_no);
CREATE INDEX idx_message_intent ON chat_message(intent);

5.2.7 采集数据表 (collected_data)

CREATE TABLE collected_data (
    id                  BIGSERIAL PRIMARY KEY,
    record_id           BIGINT NOT NULL REFERENCES follow_up_record(id),
    patient_id          BIGINT NOT NULL REFERENCES patient(id),
    data_category       VARCHAR(32) NOT NULL,             -- 类别: symptom/medication/vital_sign/lifestyle/psychological
    data_key            VARCHAR(64) NOT NULL,             -- 数据项: blood_pressure_systolic/pain_vas/phq9_score
    data_value          VARCHAR(256),                     -- 数值型/选项型值
    data_value_num      DECIMAL(10,2),                    -- 数值型值
    data_unit           VARCHAR(16),                      -- 单位
    reference_range     VARCHAR(64),                      -- 参考范围
    is_abnormal         BOOLEAN DEFAULT FALSE,            -- 是否异常
    question_text       TEXT,                              -- 对应问题原文
    answer_text         TEXT,                              -- 患者回答原文
    source              VARCHAR(32) DEFAULT 'ai_chat',    -- 数据来源
    recorded_at         TIMESTAMP DEFAULT NOW()
);

CREATE INDEX idx_collected_record ON collected_data(record_id);
CREATE INDEX idx_collected_patient ON collected_data(patient_id, data_key);
CREATE INDEX idx_collected_abnormal ON collected_data(is_abnormal) WHERE is_abnormal = TRUE;

5.2.8 预警记录表 (alert_record)

CREATE TABLE alert_record (
    id                  BIGSERIAL PRIMARY KEY,
    record_id           BIGINT REFERENCES follow_up_record(id),
    patient_id          BIGINT NOT NULL REFERENCES patient(id),
    alert_type          VARCHAR(32) NOT NULL,             -- 类型: vital_abnormal/symptom_worsening/medication_non_compliance/suicide_risk/emergency
    alert_level         SMALLINT NOT NULL,                -- 级别: 1=红色(紧急) 2=黄色(关注) 3=蓝色(提示)
    alert_source        VARCHAR(32) NOT NULL,             -- 来源: ai_analysis/rule_engine/patient_self_report
    alert_title         VARCHAR(256) NOT NULL,            -- 预警标题
    alert_description   TEXT,                              -- 预警详情
    alert_data          JSONB,                             -- 触发数据
    triggered_by        VARCHAR(128),                     -- 触发规则/模型
    status              SMALLINT DEFAULT 0,                -- 0=待处理 1=处理中 2=已处理 3=已忽略
    assigned_to         BIGINT,                           -- 处理人
    assigned_at         TIMESTAMP,
    handled_by          BIGINT,                           -- 实际处理人
    handled_at          TIMESTAMP,
    handle_action       VARCHAR(64),                      -- 处理措施
    handle_notes        TEXT,                              -- 处理备注
    closed_at           TIMESTAMP,
    escalation_level    INT DEFAULT 0,                    -- 升级次数
    created_at          TIMESTAMP DEFAULT NOW()
);

CREATE INDEX idx_alert_patient ON alert_record(patient_id);
CREATE INDEX idx_alert_status ON alert_record(status, alert_level);
CREATE INDEX idx_alert_time ON alert_record(created_at);

5.2.9 随访报告表 (follow_up_report)

CREATE TABLE follow_up_report (
    id                  BIGSERIAL PRIMARY KEY,
    patient_id          BIGINT NOT NULL REFERENCES patient(id),
    plan_id             BIGINT REFERENCES follow_up_plan(id),
    report_type         VARCHAR(32) NOT NULL,             -- 类型: single_session/periodic_summary/department/collective
    report_title        VARCHAR(256) NOT NULL,
    report_period_start DATE,
    report_period_end   DATE,
    content_json        JSONB NOT NULL,                   -- 报告结构化内容
    content_html        TEXT,                              -- 渲染后的HTML
    content_markdown    TEXT,                              -- Markdown版本
    pdf_url             VARCHAR(512),                     -- PDF文件地址
    key_findings        JSONB,                             -- 关键发现
    recommendations     JSONB,                             -- 建议措施
    generated_by        VARCHAR(32) DEFAULT 'ai',         -- 生成方式: ai/manual
    generated_by_user   BIGINT,                           -- 手动生成人
    doctor_reviewed     BOOLEAN DEFAULT FALSE,            -- 医生已审核
    reviewed_by         BIGINT,
    reviewed_at         TIMESTAMP,
    review_notes        TEXT,
    status              SMALLINT DEFAULT 1,                -- 1=草稿 2=已发布 3=已归档
    created_at          TIMESTAMP DEFAULT NOW()
);

CREATE INDEX idx_report_patient ON follow_up_report(patient_id);
CREATE INDEX idx_report_type ON follow_up_report(report_type);
CREATE INDEX idx_report_period ON follow_up_report(report_period_start, report_period_end);

5.2.10 系统配置表 (system_config)

CREATE TABLE system_config (
    id                  BIGSERIAL PRIMARY KEY,
    config_key          VARCHAR(128) NOT NULL UNIQUE,
    config_value        TEXT,
    config_type         VARCHAR(32) DEFAULT 'string',     -- string/number/boolean/json
    description         VARCHAR(256),
    category            VARCHAR(64),                      -- 分类: follow_up/alert/ai/general
    is_system           BOOLEAN DEFAULT FALSE,            -- 是否系统级(不可删除)
    created_at          TIMESTAMP DEFAULT NOW(),
    updated_at          TIMESTAMP DEFAULT NOW()
);

CREATE TABLE follow_up_template (
    id                  BIGSERIAL PRIMARY KEY,
    template_name       VARCHAR(128) NOT NULL,
    disease_category    VARCHAR(64),
    description         TEXT,
    config              JSONB NOT NULL,                   -- 模板配置(含问题集、时间线等)
    version             INT DEFAULT 1,
    is_active           BOOLEAN DEFAULT TRUE,
    created_by          BIGINT,
    created_at          TIMESTAMP DEFAULT NOW(),
    updated_at          TIMESTAMP DEFAULT NOW()
);

6. 项目实施路线图

6.1 分阶段实施计划

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Phase 1: MVP(最小可行产品)          2026.Q3 (12周)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

  Week 1-2    ▸ 项目启动 · 环境搭建 · 架构设计确认
  Week 3-4    ▸ HIS对接联调 · 患者数据同步 · 基础后台搭建
  Week 5-6    ▸ 随访模板引擎 · 任务调度系统
  Week 7-8    ▸ AI对话引擎(文本) · LLM接入 · 医学知识库
  Week 9-10   ▸ 微信小程序(患者端) · 基础数据采集
  Week 11     ▸ 集成测试 · Bug修复 · UAT测试
  Week 12     ▸ 试运行 · 培训 · 正式上线(MVP)

  ✅ MVP交付物:
  ├─ 后台管理(随访计划管理、任务监控、数据查看)
  ├─ 文字随访(微信小程序端AI对话)
  ├─ 基础预警(规则引擎,短信/微信通知)
  ├─ HIS数据对接(患者信息、出院记录同步)
  └─ 基础报表(随访完成率、数据统计)

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Phase 2: V1.0(正式版本)             2027.Q1 (16周)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

  Week 1-4    ▸ AI语音随访(ASR+TTS) · 多轮对话优化
  Week 5-8    ▸ 患者画像系统 · 个性化策略引擎
  Week 9-12   ▸ 智能预警升级(AI分析) · 干预闭环
  Week 13-14  ▸ 随访报告自动生成 · 数据可视化大屏
  Week 15-16  ▸ 性能优化 · 安全加固 · 等保三级测评

  ✅ V1.0交付物:
  ├─ 语音随访(AI外呼 + 语音对话)
  ├─ 患者画像与个性化随访
  ├─ AI驱动的智能预警与干预闭环
  ├─ 自动报告生成(患者/科室/群体)
  ├─ 数据可视化看板
  ├─ 等保三级合规认证
  └─ 飞书/钉钉工作台集成

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Phase 3: V2.0(高级版本)             2027.Q3 (16周)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

  Week 1-4    ▸ 多病种模板扩展 · 慢病管理路径
  Week 5-8    ▸ 智能设备数据接入(血压计/血糖仪)
  Week 9-12   ▸ 科研数据平台 · 脱敏数据导出 · 队列分析
  Week 13-16  ▸ 医联体多院区部署 · 运营分析 · 持续优化

  ✅ V2.0交付物:
  ├─ 慢病管理全路径(糖尿病/高血压/冠心病等)
  ├─ 物联网设备数据采集
  ├─ 科研数据平台与导出
  ├─ 医联体多院区协同
  ├─ 运营数据分析与决策支持
  └─ AI模型持续优化(基于真实数据微调)

6.2 团队配置建议

角色人数职责
项目经理1整体协调、进度管理
后端开发2-3核心业务服务、HIS对接
前端开发1-2管理后台、小程序
AI工程师1-2LLM调优、对话引擎、NLP
测试工程师1功能测试、性能测试
医学顾问1(兼职)随访模板、对话话术、合规审查
运维/DBA1(兼职)部署运维、数据库管理

6.3 关键里程碑

里程碑时间交付物
M1: 需求确认Week 2PRD文档、原型图、技术方案评审通过
M2: HIS对接完成Week 4患者数据同步正常,数据质量达标
M3: AI对话DemoWeek 8可演示的AI文字随访对话流程
M4: MVP上线Week 12系统部署上线,首批科室试用
M5: V1.0发布Week 28语音随访、智能预警、报告生成上线
M6: V2.0发布Week 44完整版本,多病种覆盖,科研平台

7. 合规与安全

7.1 医疗数据隐私保护

等保三级要求

安全域要求实施措施
物理安全机房安全、设备冗余部署于等保三级认证云机房(如阿里云/腾讯云合规区)
网络安全边界防护、入侵检测WAF + IPS + 网络隔离 + DDoS防护
主机安全漏洞管理、安全审计基线加固 + 漏洞扫描 + 安全审计日志
应用安全身份认证、访问控制OAuth2.0 + RBAC + API鉴权 + 操作审计
数据安全加密存储、脱敏、备份AES-256加密 + 动态脱敏 + 异地备份
管理制度安全策略、应急响应信息安全管理制度 + 应急预案 + 定期演练

数据加密策略

加密分级:
  L1-核心敏感: 身份证号、手机号、银行卡号
    - 存储: AES-256-GCM加密
    - 传输: TLS 1.3
    - 展示: 脱敏显示(如 138****5678)

  L2-医疗敏感: 诊断信息、检查结果、用药记录
    - 存储: 数据库字段级加密
    - 传输: TLS 1.3
    - 展示: 角色权限控制

  L3-一般业务: 随访计划、任务配置
    - 存储: 明文 + 数据库访问控制
    - 传输: TLS 1.2+
    - 展示: 基于角色

数据安全措施

  1. 数据脱敏
    • 开发/测试环境使用脱敏数据
    • 日志中不记录敏感信息
    • API返回数据按角色脱敏
  2. 数据备份
    • 数据库每日全量备份 + 实时增量备份
    • 异地容灾备份(RPO < 1小时)
    • 定期恢复演练
  3. 数据销毁
    • 患者要求删除时,30天内完成数据擦除
    • 保留必要的审计日志(匿名化)

7.2 患者知情同意

知情同意流程

┌─────────────────────────────────────────────────────────┐
│                  患者知情同意流程                          │
│                                                         │
│  1. 首次接触(出院时/首次随访前)                         │
│     ├─ 明确告知: 本系统为AI辅助随访工具                   │
│     ├─ 告知内容:                                         │
│     │   - 对话内容将被记录和分析                          │
│     │   - 数据将用于健康管理和质量改进                     │
│     │   - 可随时退出AI随访,转为人工随访                   │
│     │   - 个人隐私信息的保护措施                          │
│     └─ 获取方式: 电子签名/短信确认                        │
│                                                         │
│  2. 每次对话开始                                         │
│     ├─ 系统提示: "本次对话由AI助手进行,通话将被录音"      │
│     └─ 确认方式: 患者继续对话即视为同意                    │
│                                                         │
│  3. 撤回同意                                             │
│     ├─ 患者可随时要求停止AI随访                           │
│     ├─ 系统自动转人工随访                                 │
│     └─ 已采集数据按患者意愿处理                           │
└─────────────────────────────────────────────────────────┘

知情同意书核心条款

  1. 数据收集告知:明确列出将收集的数据类型和用途
  2. AI辅助说明:明确告知对话由AI进行,非真人对话
  3. 录音录像告知:语音随访需告知录音及保存期限
  4. 数据共享说明:如与HIS系统数据互通,需告知
  5. 退出机制:明确告知患者可随时退出,不影响正常就医
  6. 联系方式:提供人工客服/投诉渠道

7.3 AI医疗合规要求

要求说明实施措施
医疗建议免责AI不提供诊断和治疗建议所有AI回复包含免责提示
紧急情况转人工检测到紧急症状必须转人工红色预警自动触发人工介入
回复审核机制AI回复经安全过滤敏感词过滤 + 医学审核规则
可解释性决策过程可追溯记录AI推理过程和依据
人工兜底AI能力边界清晰超出范围自动转人工
持续监测AI回复质量持续监控抽样人工审核 + 满意度追踪

7.4 数据治理框架

┌───────────────────────────────────────────────────────┐
│                   数据治理框架                          │
│                                                       │
│  ┌──────────┐  ┌──────────┐  ┌──────────────────┐   │
│  │ 数据质量  │  │ 数据标准  │  │ 数据生命周期管理  │   │
│  │ - 完整性  │  │ - 编码标准│  │ - 采集 → 存储    │   │
│  │ - 准确性  │  │ - 术语标准│  │ - 使用 → 归档    │   │
│  │ - 一致性  │  │ - 接口标准│  │ - 销毁           │   │
│  └──────────┘  └──────────┘  └──────────────────┘   │
│                                                       │
│  ┌──────────────────────────────────────────────────┐ │
│  │              数据安全与隐私保护                     │ │
│  │  - 分级分类 · 加密脱敏 · 访问控制 · 审计日志      │ │
│  └──────────────────────────────────────────────────┘ │
│                                                       │
│  ┌──────────────────────────────────────────────────┐ │
│  │              合规与伦理审查                         │ │
│  │  - 伦理委员会审批 · 知情同意 · 定期评估            │ │
│  └──────────────────────────────────────────────────┘ │
└───────────────────────────────────────────────────────┘

附录

A. 技术选型对比

组件方案A方案B推荐理由
后端框架Spring BootGo (Gin)Spring Boot与HIS对接生态成熟,Java人才充足
AI推理通义千问API本地部署Qwen混合模式敏感数据本地处理,通用能力调用API
向量数据库MilvusChromaDBMilvus生产级稳定性,支持大规模检索
消息队列RabbitMQKafkaRabbitMQ随访任务场景更适合,配置简单
任务调度XXL-JOBAirflowXXL-JOBJava生态,与Spring Boot集成好

B. 关键性能指标

指标目标值
AI对话响应时间< 2秒(文字) / < 500ms(语音首包)
语音识别准确率> 95%(普通话) / > 85%(方言)
意图识别准确率> 90%
系统可用性> 99.5%
并发对话数≥ 100路同时在线
数据同步延迟< 5分钟(HIS → 随访系统)

C. 参考标准

  • GB/T 22239-2019 信息安全技术 网络安全等级保护基本要求
  • GB/T 35273-2020 信息安全技术 个人信息安全规范
  • WS/T 500-2017 电子病历共享文档规范
  • HL7 FHIR R4 医疗数据交换标准
  • 《健康医疗大数据安全管理办法》 国家卫健委
  • 《生成式人工智能服务管理暂行办法》 国家网信办

标签: 智慧医疗随访 规划文档
最后更新:2026年5月27日

小明同学

大家好~白天我是认真上班的打工人,夜晚变身快乐铲屎官,欢迎来到我的小站✨ 我定居杭州,家里养了两只软萌小可爱:大的是美短奥利奥,爱嗷嗷 “唱歌”、妥妥小吃货;小的是中华田园猫小橙子,活泼贪玩、一刻闲不住。 日常爱好很简单:阅读、看电影,当然最治愈的,还是撸猫逗猫啦。我会在这里分享工作中沉淀的技术方案、日常学习整理的技术文档,也会记录两只猫咪的可爱日常与照片。 本站内容并非完全原创,如有侵权请联系我删除,谢谢! 邮箱:guyil6016@gmail.com

点赞

文章评论

您需要 登录 之后才可以评论

COPYRIGHT © 2026 小明同学的碎碎念. ALL RIGHTS RESERVED.

赣ICP备2026003107号