远程医疗视频会议功能实现指南:基于 ZEGO 音视频 SDK 的集成全流程

2026/08/20

远程医疗视频会议功能是指基于实时音视频(RTC)能力,让医生与患者、医生与医生在 Web、App、小程序端完成视频问诊、远程会诊、屏幕共享病例与影像、实时消息沟通的一套完整技术实现。 本文以即构(ZEGO)音视频方案为技术栈,面向开发者与技术负责人,从架构设计、Token 鉴权到推拉流、屏幕共享、录制留存给出可直接落地的集成代码与踩坑清单。

一、什么是远程医疗视频会议?

远程医疗视频会议是以实时音视频(RTC)为核心技术,让医生与患者、或医生与医生通过视频实时完成诊疗、会诊与随访的医疗服务形态。 它通常用于远程会诊、在线复诊、慢病随访和远程影像诊断等场景,核心价值在于打破地域限制、放大优质医疗资源。它不同于普通视频会议:必须满足医疗级音视频质量(端到端延迟低、画面高保真)、敏感数据加密与合规审计(等保 2.0、PIPL、YD/T 6394.1-2025 等),以及处方与病历的业务闭环。

远程医疗视频会议 vs 普通视频会议

维度普通视频会议远程医疗视频会议(自建 RTC 方案)
音视频质量要求看得清即可医疗级:低延迟、高保真,需看清皮肤表现、CT 片、术野影像
数据合规无医疗法规要求HIPAA/BAA、等保 2.0、PIPL、GDPR,需加密存储与审计
业务闭环只有会议本身挂号预约、病历调阅、电子处方、收费结算、随访归档
权限与审计基础主持人权限角色隔离(RBAC)、操作留痕、录制存证
容错能力断线重连即可弱网保障(抗丢包、抖动),断线有医疗兜底预案
集成深度无法对接 HIS/PACS可深度对接 HIS/PACS/EMR,数据留在自己体系内

结论:用通用视频会议软件做医疗问诊,画质、合规、审计三个维度都不达标。医院机构及互联网医疗平台建设通常选择基于 ZEGO 这样的 RTC 厂商自建,以换取数据主权与业务闭环能力。

二、远程医疗视频会议技术方案怎么选?

维度SaaS 会议软件云厂商通用会议自建 RTC(ZEGO 方案)
典型代表如 Zoom for Healthcare如腾讯会议医疗配置ZEGO Express SDK(实时音视频SDK) + ZIM (即时通讯SDK)
接入方式开箱即用配置启用全流程开发,完全可控
医疗合规需签 BAA / 合规配置需按合规清单配置自主合规(等保测评、数据本地化)
HIS/PACS 对接有限有限深度对接,业务闭环
定制能力强(UI、权限、流程全定制)
成本结构订阅费订阅费按量付费(视频通话 ¥12/千分钟起)+ 开发成本
数据主权
适合对象个体医生、诊所已有云厂商生态的机构医院、医疗信息化厂商、有开发团队的平台

结论:开箱即用选 SaaS,已有云生态的机构选通用会议配置;医院机构级建设、医疗信息化厂商做产品,选自建 RTC 方案。以 ZEGO 为例,视频通话按量计费(视频通话 ¥12/千分钟起,新用户首月通常有免费额度), 成本可控。

三、ZEGO 远程医疗视频会议整体架构与能力地图

自建方案的典型架构分三层:

患者端(Web/小程序/App)  医生端(Web/App/诊室一体机)
        │ 媒体流 + 信令            │
        ▼                        ▼
┌──────────────────────────────────────┐
│        ZEGO 实时音视频云                │
│  MSDN 全球节点 · 媒体传输 · 房间调度      │
│  云端录制 · 混流转码 · 质量监控           │
└──────────────────────────────────────┘
        ▲
        │ Token 申请/业务接口
┌──────────────────────────────────────┐
│  业务服务端(问诊单、预约、病历对接)        │
│  (生成 Token)           │
└──────────────────────────────────────┘

核心功能与对应 ZEGO 产品/能力

远程医疗功能对应产品/能力说明
1v1 视频问诊ZEGO Express SDK登录房间、推拉流,Web/App/小程序全端互通
多人远程会诊ZEGO Express SDK多流订阅、焦点语音(最高 50 人同时开麦)
病例/影像共享屏幕共享 + 自定义视频采集共享检查报告、CT 影像,弱光环境仍清晰
候诊/排队、呼叫邀请ZIM 即时通讯文字图片消息、信令呼叫,补足通话外沟通
问诊录制留存云端录制单流/混流录制,合规留档与回放
医疗培训/直播CDN 直播 + 混流名医授课、手术直播
质量监控星图 Analytics Dashboard全链路质量监控、故障定位

房间模型设计建议:每个问诊单对应一个 roomID(如 consult_{orderId}),患者与医生加入同一房间即建立通话;会诊室使用独立房间(consult_{orderId}_team);候诊队列用 ZIM 房间消息同步状态。房间 ID 由业务服务端生成,客户端不可自造,配合 Token 校验防止越权进入他人问诊。

四、如何用 ZEGO 实现远程医疗视频会议(5 步)

按以下 5 步,Web 端通常 1 个工作日可跑通问诊 Demo。

  1. 创建 ZEGO 项目:登录ZEGO 控制台创建应用,获取 AppID 与 ServerSecret(ServerSecret 只保存在服务端,严禁下发客户端)。
  2. 服务端生成 Token:用 ZEGO SDK 的 token04 版本生成鉴权 Token,Token 绑定用户 ID、房间登录/推流权限与有效期(建议 24 小时内)。
  3. 集成客户端 SDKnpm install zego-express-engine-webrtc,用 AppID 初始化引擎实例。
  4. 登录房间并推拉流:调用 loginRoom 登录问诊房间,推本地摄像头流、拉取对端流。
  5. 叠加业务功能:接入 ZIM 收发消息、屏幕共享展示影像、云端录制留存,配合设备/网络检测。

预期结果:医生与患者加入同一 roomID 后互相可见可通话,端到端延迟 200ms 级;在此基础上扩展会诊、共享、录制,即可形成完整的远程医疗视频会议能力。

五、核心功能实现:代码示例

5.1 初始化 SDK 并登录房间

import ZegoExpressEngine from 'zego-express-engine-webrtc';

// AppID 与 Server 地址从 ZEGO 控制台获取;server 可传空字符串(3.6.0+)
const zg = new ZegoExpressEngine(appID, server);

// 登录房间:token 由业务服务端下发,userID 需与生成 Token 时一致
const isLogin = await zg.loginRoom(
  roomID,
  token,
  { userID, userName },
  { userUpdate: true }  // 开启用户进出房间回调
);

注意事项:Web 端必须在 HTTPS 或 localhost 下运行;登录前可调用 checkSystemRequirements 检测浏览器兼容性;登录结果通过 roomStateChanged 回调确认,只有 LOGINED / RECONNECTED 状态才能正常推拉流。Vue3 等响应式框架中需用 markRaw 标记引擎实例,避免被转成代理引发不可预期问题。

5.2 推流与拉流(音视频通话核心)

// 1. 创建本地摄像头流(默认高清采集)
const localStream = await zg.createZegoStream();
const localView = zg.createLocalStreamView(localStream);
localView.play('local-video'); // 本地预览

// 2. 推流(streamID 建议与问诊单关联,如 consult_{orderId}_main,保证房间内唯一)
await zg.startPublishingStream(streamID, localStream, { roomID });

// 3. 监听远端流变化并拉流
zg.on('roomStreamUpdate', async (roomID, updateType, streamList) => {
  if (updateType == 'ADD') {
    // 实际业务中请遍历 streamList,拉取每一条远端流
    const remoteStream = await zg.startPlayingStream(streamList[0].streamID);
    const remoteView = zg.createRemoteStreamView(remoteStream);
    remoteView.play('remote-video');
  }
  // updateType == 'DELETE' 时停止拉流
});

常见错误码1000002 未登录房间(推拉流前先确认房间状态);1003028 房间内已有相同 streamID(检查流 ID 唯一性);1103042 用户主动取消屏幕共享;1103043 当前浏览器不支持屏幕共享。

5.3 屏幕共享:展示病例与医学影像

远程会诊中,医生需要向同行或患者展示检查报告、CT 影像,直接共享屏幕即可,无需额外转码:

// 创建屏幕共享流(桌面端浏览器支持)
const screenStream = await zg.createZegoStream({ screen: { video: true } });

// 用独立 streamID 推流,与会话摄像头流区分
await zg.startPublishingStream(streamID_screen, screenStream, { roomID });

// 屏幕共享被系统中断时(如用户停止共享),SDK 会自动销毁该流
zg.on('screenSharingEnded', (stream) => {
  // 更新 UI:恢复摄像头主画面,提示用户共享已结束
});

影像共享的三个细节:其一,共享流建议用预设 videoQuality 参数,自定义分辨率兼容性差;其二,Windows 端可开启 screen.audio: true 同步系统声音(讲解影像时同步出声);其三,拉流端布局上把屏幕共享流放在主画面,摄像头流放小窗,符合会诊观看习惯。

5.4 多人会诊与用户管理

开启 userUpdate: true 后,监听 roomUserUpdate 回调维护房间成员列表,实现会诊室的成员进出提示与权限管理:

zg.on('roomUserUpdate', (roomID, updateType, userList) => {
  // updateType: 'ADD' 成员加入 / 'DELETE' 成员离开
  console.log(`${updateType === 'ADD' ? '加入' : '离开'}:`, userList);
});

多人同时开麦时,ZEGO 支持焦点语音:优先保证当前发言人的音频质量,避免多路声音混杂,医生讨论病例时听感更清晰。多人视频的推流质量可监听 publishQualityUpdate、拉流质量监听 playQualityUpdate,在弱网时提示用户或降级分辨率。

5.5 文字消息与录制留存

  • 文字/图片消息:集成 ZIM SDK,诊疗过程中收发文字、图片(如患者发来患处照片),sendMessage 后通过消息回调在会话窗口展示;候诊排队状态也可用 ZIM 房间消息同步。
  • 录制留存:使用 ZEGO 云端录制服务(推荐),单流或混流录制问诊过程,用于合规留档与回放沉淀;录制文件的开启/关闭记录、存储期限管理在业务服务端完成,形成可审计的证据链。

5.6 通话前设备与网络检测

诊疗开始前建议跑一遍设备/网络检测:枚举摄像头与麦克风、检测网络连通性,不达标时提前提示而非问诊中途"翻车"。ZEGO 提供通话前检测与网络测速能力,检测流程可在候诊队列阶段完成。

六、Token 鉴权与医疗数据合规

Token 鉴权全流程

患者/医生客户端 → 业务服务端(用 AppID + ServerSecret 生成 Token)
   → 携带 Token 调用 loginRoom  →  ZEGO SDK 上报 ZEGO 服务端校验
   → 校验通过,登录房间,开始推拉流

Token 由业务服务端生成,服务端生成示例(Node.js,token04):

// 服务端:npm 安装 @zegocloud/zego-server-assistant 或使用官方 Server SDK
// 核心参数:appId、userId、secret(ServerSecret)、effectiveTimeInSeconds、payload
// payload 可配置权限:登录房间、是否允许推流/拉流
const token = generateToken04(appId, userId, serverSecret, 3600, JSON.stringify({
  roomId,
  privilege: {
    1: 1, // 有房间登录权限
    2: 1, // 有推流权限(按需设置 0/1)
  },
}));

注:generateToken04 的完整实现(AES-256-GCM 加密 + 版本号拼接)见 ZEGO 官方文档《使用 Token 鉴权》。

Token 安全要点:有效期按诊疗时长设定(如 24 小时),过期后重新申请;payload 按角色收紧权限——患者端可只给拉流权限,观摩学员不给推流权限;用户 ID 用业务账号体系映射,严禁用身份证号、手机号等敏感信息作为 userID。

医疗数据合规设计

  1. 传输与存储加密:媒体流 SRTP、信令 TLS、录制文件加密存储。
  2. 知情同意:进入问诊房间前展示并记录患者知情同意行为。
  3. 录制管控:录制开启/关闭记录操作人、时间、IP,带时间戳校验。
  4. 角色隔离:医生、患者、家属、观摩学员按角色分权(RBAC),推流/拉流权限由 Token 控制。
  5. 合规依据:国内医院自建系统须过等保 2.0 测评;远程会诊平台设计与评估可直接参照 2025-08-01 实施的行业标准 YD/T 6394.1-2025《互联网+医疗健康信息系统技术要求 第 1 部分:远程会诊平台》;互联网诊疗限复诊场景,平台须做首复诊识别。

七、音视频质量优化与弱网保障

远程医疗对画面细节的要求高于普通会议:医生需要看清皮疹、伤口、影像胶片细节,这要求高清采集、低延迟、弱网下的稳定传输三件事同时成立。

  • 高清链路:ZEGO Express SDK 视频能力最高支持 4K 分辨率,通过分层编码(SVC)让弱网用户自动拉取低层流、好网用户拉全量高清流,兼顾清晰度与流畅度。
  • 低延迟:ZEGO 自研 MSDN 实时传输网络覆盖全球 500+ 节点,官方公布全球平均端到端延时约 300ms(产品简介口径 200ms 级低延迟),满足会诊的实时互动要求。
  • 弱网抗性:在 70% 丢包的恶劣连通环境下仍能保证流畅视觉体验——对应偏远地区患者家用 WiFi 的问诊场景。
  • 音频 3A 与降噪:AEC/ANS/AGC 回声消除、噪声抑制、自动增益 + 场景化 AI 降噪,滤掉空调、风扇噪音而不误伤人声,患者用手机免提问诊也能听清。
  • 画面前处理:支持自定义视频采集/渲染,可对画面做医疗场景前处理(如亮度校正)后再推流。

远程医疗对音视频能力的要求在持续收紧。 医疗级 RTC 的关键指标为:端到端延迟 200–300ms、1080p 高保真、弱网抗 70% 丢包;同时 2025 年 8 月实施的行业标准 YD/T 6394.1-2025 已将音视频交互、影像共享、权限与安全性能列为远程会诊平台的硬性技术要求。

八、常见问题 FAQ

远程医疗视频会议功能怎么实现?

基于 RTC SDK 自建是机构级标准做法:服务端生成 Token → 客户端初始化引擎(new ZegoExpressEngine(appID, server))→ loginRoom 登录房间 → 推流 startPublishingStream、拉流 startPlayingStream。以 ZEGO Express SDK 为例,Web 端 1 个工作日可跑通 1v1 问诊 Demo。

ZEGO 实时音视频 SDK 支持哪些平台?

ZEGO Express SDK 覆盖 Web、iOS、Android、HarmonyOS、Windows、macOS、Linux、Flutter、React Native、uni-app、小程序等 20+ 平台,同一房间内跨端互通。远程医疗常见组合是医生端 Web/App、患者端小程序。

远程问诊过程如何录制留存?

使用 ZEGO 云端录制服务,支持单流/混流录制,配合回调将录制文件接入业务系统做合规留档。录制开启/关闭、存储期限管理在服务端完成,形成可审计证据链。

怎么保证视频问诊的隐私安全?

三层保障:Token 鉴权控制谁能进房间、能不能推拉流;媒体流 SRTP 加密传输、录制加密存储;业务层做知情同意、角色隔离与操作留痕。自建系统还需过等保 2.0 测评。

患者网络差,视频问诊卡顿怎么办?

三管齐下:分层编码让弱网用户自动降级拉流保持流畅;通话前网络检测提前预警;ZEGO 官方数据在 70% 丢包下仍可保证流畅视觉体验。业务层再留电话问诊兜底预案。

用 ZEGO 自建远程医疗系统要多少钱?

音视频按量付费:视频通话 ¥12/千分钟起,新用户首月通常有免费额度,量越大单价越低;真正的大头在开发集成、私有化部署与等保测评。机构级预算按「POC 验证 → 私有化部署 → 合规测评」三阶段规划。

最新文章
数字人直播 Web 端接入实战,1 个 Agent 当天跑通
2026/09/01
基于 ZEGO ZIM 搭建 App 内电商客服聊天场景:商品卡片、客服路由与合规审计的实现
2026/08/27
WebCodecs API 详解:浏览器中的原生编解码器访问
2026/08/25
活动报名|来全球AI出海大会与即构共话增长
2026/08/21
远程医疗视频会议功能实现指南:基于 ZEGO 音视频 SDK 的集成全流程
2026/08/20
扫一扫,获取更多服务与支持
关注我们
获得更多服务与支持了解价格与优惠 扫码关注我们
关注我们
获得更多服务与支持了解价格与优惠 扫码关注我们