# 猎户星空 × AI 智慧医疗 深度合作方案(详细技术版) > 文档版本:v1.0 > 生成时间:2026-04-01 > 合作方向:医疗专用机器人联合解决方案 --- ## 一、合作概述 ### 1.1 双方优势 | 维度 | AI 智慧医疗(我方) | 猎户星空(合作方) | |------|-------------------|-------------------| | **核心能力** | AI 中台、门诊/住院/体检智能体集群、BI 智能体 | 机器人硬件、RobotOS 操作系统、全国销售网络 | | **技术栈** | RAG、MCP、知识库、专精模型训练 | SLAM 导航、语音交互、多模态感知 | | **市场资源** | 医院客户资源、医疗行业 Know-how | 全国渠道、酒店/餐饮/政务场景经验 | | **产品形态** | 软件 + AI 能力 | 硬件 + 基础 OS | ### 1.2 合作模式 **采用模式**:基于猎户星空 RobotOS 开发医疗专用 APK,借助其全国销售网络推广 **分工边界**: - 我方:医疗业务逻辑、AI 能力集成、医院系统对接、交付实施 - 对方:机器人硬件、基础 OS、导航/语音等底层能力、销售渠道 ### 1.3 目标场景 1. **门诊机器人**:导诊、预问诊、自助服务、报告解读、院内导航 2. **住院机器人**:入院引导、智能查房、药品配送、呼叫响应、夜间巡检 --- ## 二、门诊机器人详细方案 ### 2.1 智能导诊 #### 功能描述 患者走近机器人,通过语音或触屏描述症状,机器人分析后推荐对应科室,并引导患者前往挂号或科室位置。 #### 依赖的 RobotOS API **本地端 API(APK/OPK):** | API 名称 | 所属模块 | 功能说明 | |---------|---------|---------| | `WakeupAndPreWakeupStartCheckComponent` | 功能组件-人脸识别 | 检测患者走近并唤醒机器人 | | `speechApi.setRecognizable(true)` | 基础接口-语音 | 开启语音识别 | | `speechApi.setRecognizeMode(true)` | 基础接口-语音 | 设置为持续识别模式 | | `SkillCallback.onListenCallback` | 语音回调 | 接收 ASR 识别结果 | | `speechApi.playText()` | 基础接口-语音 | TTS 播报导诊结果 | | `NavigationComponent` | 功能组件-导航 | 引导患者到挂号处或科室 | | `RobotApi.getPlaceList()` | 基础接口-地图 | 获取所有科室位置点 | **服务端 API(远程控制):** | API 名称 | 用途 | |---------|------| | `POST /robot/control/tts` | 远程触发导诊语音播报 | | `POST /robot/control/navigate` | 远程触发导航到指定科室 | #### 完整实现路径 ``` 步骤 1: 患者检测与唤醒 ├── 调用 WakeupAndPreWakeupStartCheckComponent ├── 参数: maxDistance=3m, wakeupFaceDistance=1.3m, wakeupFaceAngleX=45° ├── 状态码 32710001: 检测到患者走近 └── 触发: 机器人抬头、亮屏、播放欢迎语 步骤 2: 语音交互开启 ├── 调用 speechApi.setRecognizable(true) 开启语音识别 ├── 调用 speechApi.setRecognizeMode(true) 设置持续识别 ├── 展示 UI 提示: "请描述您的症状" └── 调用 speechApi.playText("您好,我是智能导诊助手,请描述您的症状") 播放欢迎语 步骤 3: 症状采集与 AI 分析 ├── 患者在 Voice.onListenCallback 中说话 ├── 获取 ASR 文本结果 ├── 调用我方 AI 中台 API: 症状 → 科室推荐 │ └── 输入: "头痛、发烧" │ └── 输出: {科室: "神经内科", 置信度: 0.92, 建议: "..."} └── 获取科室位置: 调用 RobotApi.getPlaceList() 查询科室坐标 步骤 4: 导诊结果播报 ├── 调用 speechApi.playText() 播报: │ └── "根据您的症状,建议挂神经内科。神经内科在3楼东侧,需要我带您过去吗?" └── 屏幕同步显示: 科室介绍、医生排班、预计等待时间 步骤 5: 引导导航(患者同意) ├── 患者说"带我去" → NLP 解析 intent=guide_to ├── 调用 NavigationComponent ├── 参数: destination="神经内科候诊区", param_linear_speed=0.8, param_angular_speed=1.2 ├── 状态监听: │ ├── 32730001: 开始导航 │ ├── 32730005: 距离上报(更新屏幕剩余距离) │ ├── 32730004: 遇到障碍物(语音播报"请让一让") │ └── 32610007: 到达目标点 └── 到达后: speechApi.playText("神经内科到了,请在此等候叫号") 步骤 6: 结束交互 ├── 调用 speechApi.setRecognizable(false) 关闭语音识别 ├── 机器人进入待机巡逻模式(可选 CruiseComponent) └── 等待下一个患者唤醒 ``` #### 需要对方配合的事项 1. **唤醒灵敏度调优**:医院环境嘈杂,需要调整 `maxDistance` 和 `wakeupFaceDistance` 参数 2. **科室地图点位**:提供医院各科室的位置点名称和坐标,录入机器人地图 3. **NLP 意图配置**:在开发者平台配置导诊相关 Domain/Intent --- ### 2.2 预问诊 #### 功能描述 患者在挂号前,机器人通过多轮对话采集病史、症状、过敏史等信息,生成结构化预问诊报告,同步给医生。 #### 依赖的 RobotOS API **本地端 API:** | API 名称 | 所属模块 | 功能说明 | |---------|---------|---------| | `speechApi.setRecognizable(true)` | 基础接口-语音 | 开启语音识别 | | `SkillCallback.onListenCallback` | 语音回调 | 接收患者回答 | | `speechApi.playText()` | 基础接口-语音 | 播报问诊问题 | | `global.recognition.setShow(true)` | ASR 可视化 | 展示识别文字上屏 | | `PersonAppearComponent` | 功能组件-人脸 | 确认患者仍在交互 | **服务端 API:** | API 名称 | 用途 | |---------|------| | `POST /robot/control/tts` | 远程推送问诊问题 | | `POST /enterprise/person/search` | 人脸识别确认患者身份 | #### 完整实现路径 ``` 步骤 1: 启动预问诊流程 ├── 触发条件: 患者说"我要预问诊" 或 点击屏幕按钮 ├── 调用 PersonAppearComponent 确认患者身份 ├── 调用 speechApi.playText("好的,我将为您进行预问诊,请回答以下问题") └── 屏幕展示: 预问诊进度条(0/8 问题) 步骤 2: 多轮对话问诊(循环 8-10 个问题) ├── 第 1 轮: TTS "请问您哪里不舒服?" │ ├── 开启语音识别: speechApi.setRecognizable(true) │ ├── 展示 ASR 文字: global.recognition.setShow(true) │ ├── 患者回答 → onListenCallback 获取文本 │ └── 调用我方 AI: 症状实体提取 → 存储 ├── 第 2 轮: TTS "这种情况持续多久了?" │ └── 同上流程,提取时间实体 ├── 第 3 轮: TTS "有没有过敏史?" │ └── 同上流程... └── ...(继续后续问题) 步骤 3: 信息确认 ├── 调用我方 AI 生成预问诊摘要 ├── 屏幕展示完整信息供患者确认 ├── TTS "请确认以上信息是否正确?" └── 患者说"正确"或"修改第X项" 步骤 4: 数据同步 ├── 调用我方 API: 预问诊数据 → HIS 系统 ├── 生成预问诊报告 PDF └── TTS "预问诊完成,信息已同步给医生" 步骤 5: 引导下一步 ├── 询问: "需要我帮您挂号吗?" └── 根据回答进入挂号流程或结束 ``` #### 需要对方配合的事项 1. **多轮对话 NLP 配置**:配置问诊场景的 Domain/Intent/Slot 2. **长拾音模式**:设置 `speechApi.setRecognizeMode(true)` 支持长句识别 3. **隐私保护**:医院场景需要确保语音数据本地处理或加密传输 --- ### 2.3 自助挂号缴费 #### 功能描述 患者通过机器人完成挂号、缴费、医保结算,需要对接读卡器和支付模块。 #### 依赖的 RobotOS API **本地端 API:** | API 名称 | 所属模块 | 功能说明 | |---------|---------|---------| | `speechApi.playText()` | 基础接口-语音 | 操作指引播报 | | `OpenAppApi.openThirdPartyApp()` | 基础接口-应用 | 调起支付 APP | | `AppManager.restartApp()` | 基础接口-应用 | 返回主界面 | | `LightApi.playEffect()` | 基础接口-灯带 | 操作成功/失败提示 | **硬件接口(需定制):** | 接口 | 说明 | |------|------| | 医保卡读卡器 | 读取社保卡/就诊卡信息 | | 扫码器 | 扫描患者手机支付码 | | 打印机 | 打印挂号单/发票/凭条 | **服务端 API:** | API 名称 | 用途 | |---------|------| | `POST /enterprise/person/search` | 人脸识别确认身份 | | `POST /robot/control/tts` | 远程播报操作结果 | #### 完整实现路径 ``` 步骤 1: 启动挂号流程 ├── 患者说"我要挂号"或点击屏幕 ├── TTS "请刷医保卡或就诊卡,或说出您的身份证号" └── 屏幕展示: 刷卡区域提示 + 身份证号输入键盘 步骤 2: 身份识别(三选一) ├── 方式 A: 刷医保卡 │ ├── 调用读卡器硬件接口(需对方提供 SDK) │ ├── 读取卡号 → 调用 HIS 接口获取患者信息 │ └── 屏幕展示: 患者姓名、医保类型 ├── 方式 B: 人脸识别 │ ├── 调用 RecognizeComponent │ ├── 识别成功 → 获取患者 ID │ └── 屏幕确认: "请问您是 XXX 吗?" └── 方式 C: 身份证号 ├── 患者语音报号或触屏输入 └── 调用 HIS 接口验证身份 步骤 3: 科室选择 ├── 屏幕展示: 科室列表(可语音搜索) ├── 患者选择科室 ├── 调用 HIS 接口: 获取医生排班、号源 └── 屏幕展示: 可选医生、时间段、费用 步骤 4: 确认挂号 ├── 患者确认 ├── 调用 HIS 接口: 锁定号源 ├── TTS "请确认支付 XX 元" └── 屏幕展示: 支付方式选择(医保/微信/支付宝) 步骤 5: 支付处理 ├── 医保支付: │ ├── 调用医保读卡器 │ ├── 输入医保密码(屏幕键盘) │ └── 调用医保结算接口 ├── 微信支付: │ ├── 屏幕展示收款二维码 │ ├── 患者手机扫码支付 │ └── 轮询支付结果 └── 支付宝支付: 同上 步骤 6: 打印凭条 ├── 支付成功 ├── 调用打印机硬件接口打印挂号单 ├── TTS "挂号成功,请取走凭条,到 X 楼 XX 科室候诊" ├── 灯带效果: LightApi.playEffect("light_effect_green_light") 绿色常亮 3 秒 └── 屏幕展示: 科室位置地图 + 导航按钮 步骤 7: 引导就诊 ├── 患者点击"带我去" ├── 调用 NavigationComponent 导航到科室 └── 或患者自行离开,机器人恢复待机 ``` #### 需要对方配合的事项 1. **读卡器 SDK**:提供医保卡/就诊卡读卡器的 Android SDK 接口 2. **打印机 SDK**:提供热敏打印机的调用接口(支持 ESC/POS 指令) 3. **支付安全**:确保支付模块通过安全认证,支持医保加密要求 4. **硬件集成**:协助将读卡器、打印机集成到机器人机身 --- ### 2.4 检查报告解读 #### 功能描述 患者在检验科做完检查后,机器人帮助查询报告、解读异常指标、提供健康建议。 #### 依赖的 RobotOS API **本地端 API:** | API 名称 | 所属模块 | 功能说明 | |---------|---------|---------| | `speechApi.playText()` | 基础接口-语音 | 解读结果播报 | | `speechApi.playStreamText()` | 基础接口-语音 | 长文本流式播报 | | `ExDisplay` | UI 组件 | 大屏展示报告内容 | | `ImageFrame` | UI 组件 | 展示报告趋势图 | **服务端 API:** | API 名称 | 用途 | |---------|------| | `POST /robot/control/tts` | 远程触发报告解读 | | `GET /robot/info` | 获取机器人状态确保在线 | #### 完整实现路径 ``` 步骤 1: 报告查询触发 ├── 触发方式: │ ├── A: 患者说"查报告" │ ├── B: 检验科推送"报告已出"消息到机器人 │ └── C: 患者刷卡/人脸识别自动查询 └── 身份确认: 同 2.3 步骤 2 步骤 2: 获取报告数据 ├── 调用 LIS/PACS 接口查询最新报告 ├── 获取报告列表(血常规、尿常规、B超等) └── 屏幕展示: 报告列表,患者选择查看 步骤 3: AI 解读报告 ├── 调用我方 AI 中台: 报告数据 → 解读结果 │ ├── 输入: 血常规各项指标 │ └── 输出: { │ 异常项: ["白细胞偏高", "血红蛋白偏低"], │ 解读: "白细胞偏高可能提示...", │ 建议: "建议到内科进一步检查..." │ } └── 生成可视化图表: 历史指标趋势对比 步骤 4: 结果展示与播报 ├── 屏幕展示(ExDisplay 组件): │ ├── 报告摘要卡片 │ ├── 异常指标高亮 │ ├── 历史趋势图(ImageFrame 动画) │ └── 医生建议文本 └── TTS 播报(流式): └── speechApi.playStreamText("您的血常规报告显示...") 步骤 5: 交互问答 ├── 患者问"白细胞偏高是什么意思?" ├── NLP 解析 → 调用知识库 RAG ├── TTS 回答专业解释 └── 屏幕同步展示相关医学知识 步骤 6: 后续引导 ├── 如有异常: "需要我帮您预约内科医生吗?" ├── 如无异常: "各项指标正常,请保持健康生活方式" └── 提供报告打印选项(调用打印机) ``` #### 需要对方配合的事项 1. **大屏展示优化**:确保 ExDisplay 组件支持医疗报告的高清展示 2. **流式 TTS**:支持长文本(可能 500-1000 字)的流畅播报 3. **LIS/PACS 对接**:协助打通医院检验系统接口 --- ### 2.5 院内导航引领 #### 功能描述 患者询问某个科室或设施位置,机器人提供语音指引,并可选择"带我去"的引领模式。 #### 依赖的 RobotOS API **本地端 API:** | API 名称 | 所属模块 | 功能说明 | |---------|---------|---------| | `NavigationComponent` | 功能组件-导航 | 导航到指定位置 | | `LeadingTrackComponent` | 功能组件-引领 | 人跟机器人走 | | `RobotApi.getPlaceList()` | 基础接口-地图 | 获取所有位置点 | | `locationEstimateUtil.isInPlace()` | 基础接口-地图 | 判断是否到达 | | `speechApi.playText()` | 基础接口-语音 | 导航指引播报 | **梯控相关(跨楼层):** | API 名称 | 所属模块 | 功能说明 | |---------|---------|---------| | `NavigationElevatorComponent` | 高级功能-梯控 | 导航乘梯 | | `RobotApi.getMultiFloorConfigAndCommonPose()` | 基础接口-地图 | 获取多楼层点位 | #### 完整实现路径 ``` 步骤 1: 目的地询问 ├── 患者说"我要去内科"或"卫生间在哪里" ├── NLP 解析: intent=navigation, slot={destination: "内科"} └── 调用 RobotApi.getPlaceList() 查询匹配位置点 步骤 2: 路径规划与播报 ├── 同楼层导航: │ ├── TTS "内科在 3 楼东侧,距离约 150 米" │ ├── 屏幕展示: 地图路径预览 │ └── 询问: "需要我带您过去吗?" └── 跨楼层导航: ├── TTS "内科在 5 楼,我需要乘电梯上去" ├── 屏幕展示: 楼层切换提示 └── 询问: "需要我带您过去吗?" 步骤 3: 引领模式(患者同意) ├── 调用 LeadingTrackComponent ├── 参数: │ ├── lostTime=2000ms(判定丢失时间) │ ├── farawayDistance=2.8m(超距上报距离) │ └── maxDistance=3m(人脸检测范围) ├── 状态监听: │ ├── 32720007: 找到目标(开始引领) │ ├── 32720001: 追踪成功(正常引领中) │ ├── 32720004: 目标距离过远(播报"请跟紧我") │ ├── 32720009: 长时间超距(停下等待) │ └── 32720008: 目标丢失(播报"我在这里等您") └── 行进中 TTS: "请跟我来"、"前面左转"、"电梯在这边" 步骤 4: 跨楼层处理(如涉及) ├── 到达电梯口 ├── 调用 NavigationElevatorComponent ├── 状态监听: │ ├── 32750004: 到达电梯门 │ ├── 32750005: 进入电梯并转向 │ └── 32750009: 离开电梯 ├── 出电梯后: 重新定位 → 继续引领 └── TTS "我们已经到 5 楼了,继续跟我走" 步骤 5: 到达确认 ├── 调用 locationEstimateUtil.isInPlace("内科候诊区", 1.0) ├── 返回 true: 确认到达 ├── TTS "内科到了,请在此等候叫号。祝您早日康复!" ├── 屏幕展示: 内科医生排班、预计等待时间 └── 机器人恢复待机 ``` #### 需要对方配合的事项 1. **医院地图建模**:提供医院各楼层的高精度地图,标注所有科室、电梯、卫生间等 POI 2. **梯控对接**:如果支持梯控,需要对接医院电梯控制系统(提供梯控协议文档) 3. **引领参数调优**:根据医院人流密度调整 `lostTime` 和 `farawayDistance` --- ### 2.6 门诊巡逻/主动迎宾 #### 功能描述 机器人在门诊大厅巡逻,主动发现需要帮助的患者,提供咨询服务。 #### 依赖的 RobotOS API **本地端 API:** | API 名称 | 所属模块 | 功能说明 | |---------|---------|---------| | `CruiseComponent` | 功能组件-巡逻 | 多点循环巡逻 | | `WakeupAndPreWakeupStartCheckComponent` | 功能组件-人脸 | 检测徘徊患者 | | `PersonAppearComponent` | 功能组件-人脸 | 主动找人 | | `StandardFaceTrackComponent` | 功能组件-追踪 | 注视患者 | | `speechApi.playText()` | 基础接口-语音 | 主动问候 | #### 完整实现路径 ``` 步骤 1: 巡逻路线设置 ├── 定义巡逻点: ["门诊入口", "挂号处", "药房", "检验科", "电梯厅"] ├── 调用 CruiseComponent ├── 参数: │ ├── cruise_route_list='["门诊入口","挂号处","药房","检验科","电梯厅"]' │ └── cruise_point_avoid_time_out=30000(每点停留 30 秒) └── 状态监听: 32730013 开始巡逻、32730014 到达某点 步骤 2: 主动发现(每巡逻点停留时) ├── 调用 PersonAppearComponent ├── 参数: maxDistance=3m, isNeedBody=true(检测人体) ├── 检测到徘徊患者(停留超过 10 秒) └── 触发主动服务 步骤 3: 主动问候 ├── 调用 StandardFaceTrackComponent 注视患者 ├── TTS "您好,有什么可以帮您的吗?" ├── 屏幕展示: 常见问题快捷按钮 └── 开启语音识别等待患者回应 步骤 4: 服务提供 ├── 患者提问 → 进入对应服务流程(导诊/挂号/查报告等) ├── 患者无回应 → 10 秒后恢复巡逻 └── 服务完成 → 询问"还有其他需要帮助的吗?" 步骤 5: 继续巡逻 ├── 恢复 CruiseComponent 巡逻 └── 循环执行步骤 2-4 ``` #### 需要对方配合的事项 1. **巡逻路线规划**:根据医院布局设计最优巡逻路线 2. **避障参数**:门诊人流密集,需要调整避障灵敏度 3. **充电策略**:巡逻耗电快,需要设置自动回充逻辑 --- ## 三、住院机器人详细方案 ### 3.1 入院引导 #### 功能描述 新入院患者在住院部大厅,机器人协助完成入院登记、科室指引、宣教告知。 #### 依赖的 RobotOS API **本地端 API:** | API 名称 | 所属模块 | 功能说明 | |---------|---------|---------| | `WakeupAndPreWakeupStartCheckComponent` | 功能组件-人脸 | 检测新患者 | | `RegisterComponent` | 功能组件-人脸 | 人脸注册(住院期间识别) | | `NavigationComponent` | 功能组件-导航 | 引导到病房 | | `speechApi.playText()` | 基础接口-语音 | 入院宣教播报 | | `ExDisplay` | UI 组件 | 展示入院须知 | #### 完整实现路径 ``` 步骤 1: 检测新入院患者 ├── 在住院部大厅巡逻或待机 ├── 检测到携带行李的患者(Wakeup + 人体检测) ├── TTS "您好,欢迎入住本院,我是您的智能陪护助手" └── 屏幕展示: 入院服务菜单 步骤 2: 身份确认与人脸注册 ├── 患者刷就诊卡/报身份证号 ├── 调用 HIS 接口获取入院信息 ├── 屏幕确认: "请问您是 XXX,入住 XX 科室 X 床吗?" ├── 患者确认后 → 调用 RegisterComponent 注册人脸 │ └── 参数: personName=患者姓名 └── 注册成功: 住院期间可通过人脸识别调用服务 步骤 3: 入院宣教 ├── TTS 播报入院须知(流式 TTS) ├── 屏幕展示(ExDisplay): │ ├── 探视时间 │ ├── 订餐方式 │ ├── 紧急呼叫方法 │ └── 病房设施使用说明 └── 患者可语音提问 步骤 4: 引导到病房 ├── 询问: "需要我带您去病房吗?" ├── 患者同意 → 调用 NavigationComponent ├── 导航到 "XX 科 X 病区" ├── 到达后 TTS "您的病房到了,祝您早日康复" └── 机器人返回大厅 ``` --- ### 3.2 智能查房巡检 #### 功能描述 机器人按医嘱或护理计划,定时到病房巡视,采集患者生命体征、询问状况、记录反馈。 #### 依赖的 RobotOS API **本地端 API:** | API 名称 | 所属模块 | 功能说明 | |---------|---------|---------| | `CruiseComponent` | 功能组件-巡逻 | 按病房路线巡检 | | `NavigationComponent` | 功能组件-导航 | 导航到指定病房 | | `PersonAppearComponent` | 功能组件-人脸 | 确认患者身份 | | `speechApi.playText()` | 基础接口-语音 | 询问患者状况 | | `SkillCallback.onListenCallback` | 语音回调 | 接收患者回答 | | `cronParser.startCronTask()` | 高级功能-定时 | 设置定时查房 | **IoT 设备对接(需定制):** | 设备 | 接口 | 说明 | |------|------|------| | 血压计 | 蓝牙/WiFi | 自动采集血压数据 | | 体温计 | 蓝牙/WiFi | 自动采集体温数据 | | 血氧仪 | 蓝牙/WiFi | 自动采集血氧数据 | | 床头呼叫器 | 协议对接 | 接收呼叫信号 | #### 完整实现路径 ``` 步骤 1: 定时任务设置 ├── 调用 cronParser.startCronTask ├── 参数: │ ├── id="morning_rounds" │ ├── grammar="0 8 * * *"(每天早上 8 点) │ └── program="start_rounds" └── 定时触发查房流程 步骤 2: 开始巡检 ├── 调用 CruiseComponent 按病房顺序巡逻 ├── 或调用 NavigationComponent 逐个前往指定病房 ├── 到达病房门口 → 播报"查房了" 步骤 3: 患者身份确认 ├── 进入病房 ├── 调用 PersonAppearComponent 识别患者人脸 ├── 匹配住院患者数据库 └── 确认身份后调取患者病历 步骤 4: 生命体征采集 ├── 方式 A: 自动采集(IoT 设备) │ ├── 机器人携带便携式血压计/体温计 │ ├── 患者自主测量或护士协助 │ └── 蓝牙传输数据到机器人 ├── 方式 B: 语音询问 │ ├── TTS "请问您今天的体温是多少?" │ ├── 患者语音回答 │ └── ASR 识别并记录 └── 数据暂存,待统一上传 步骤 5: 状况询问 ├── TTS "您今天感觉怎么样?有没有不舒服?" ├── 患者回答 → NLP 解析 ├── 关键信息提取: │ ├── 疼痛部位、程度 │ ├── 睡眠质量 │ ├── 饮食情况 │ └── 特殊不适 └── 记录到查房记录 步骤 6: 医嘱确认 ├── TTS "您今天的用药是 XXX,请按时服用" ├── 展示药品图片和服用说明 ├── 询问: "您明白了吗?" └── 患者确认 步骤 7: 数据上传与异常预警 ├── 调用我方 API: 查房数据 → 护理系统 ├── AI 分析异常指标: │ ├── 体温 > 38°C → 标记发热 │ ├── 血压异常 → 标记高血压/低血压 │ └── 患者主诉严重不适 → 标记需医生查看 └── 异常自动推送给责任护士 步骤 8: 继续巡检 ├── 离开病房 → 前往下一间 └── 循环步骤 3-7 步骤 9: 巡检完成 ├── 所有病房巡检完毕 ├── 生成巡检报告 ├── 自动回充(ChargeStartComponent) └── 等待下次定时任务 ``` #### 需要对方配合的事项 1. **IoT 设备 SDK**:提供蓝牙/WiFi 医疗设备的对接协议 2. **病房地图**:精确到床位的病房内部地图 3. **隐私保护**:查房时的语音和图像数据加密处理 --- ### 3.3 药品/标本配送 #### 功能描述 机器人从药房运送药品到病房,或从病房运送检验标本到检验科。 #### 依赖的 RobotOS API **本地端 API:** | API 名称 | 所属模块 | 功能说明 | |---------|---------|---------| | `NavigationComponent` | 功能组件-导航 | 导航到药房/病房/检验科 | | `NavigationElevatorComponent` | 高级功能-梯控 | 跨楼层配送 | | `PersonAppearComponent` | 功能组件-人脸 | 确认接收人身份 | | `speechApi.playText()` | 基础接口-语音 | 通知取药 | | `LightApi.playEffect()` | 基础接口-灯带 | 配送中状态提示 | **硬件接口(需定制):** | 接口 | 说明 | |------|------| | 货仓电控锁 | 药品/标本存放,到达后解锁 | | 重量传感器 | 检测物品是否放入/取出 | | 温控模块(可选) | 冷链药品保温 | **服务端 API:** | API 名称 | 用途 | |---------|------| | `POST /robot/task/create` | 创建配送任务 | | `POST /robot/control/navigate` | 远程触发配送 | #### 完整实现路径 ``` 步骤 1: 接收配送任务 ├── 触发方式: │ ├── A: 药房系统推送 "X 床药品待配送" │ ├── B: 护士站通过服务端 API 下发任务 │ └── C: 护士在机器人屏幕创建任务 └── 调用 POST /robot/task/create 创建任务 步骤 2: 前往取货点 ├── 任务队列排序(优先级、路径优化) ├── 调用 NavigationComponent 导航到药房 ├── 到达后 TTS "药品配送员,请放入药品" ├── 货仓门打开(电控锁解锁) ├── 药师放入药品 → 重量传感器确认 ├── 货仓门关闭上锁 └── 屏幕展示: 目的地、药品清单 步骤 3: 配送途中 ├── 调用 NavigationComponent 导航到目标病房 ├── 跨楼层时: NavigationElevatorComponent 乘梯 ├── 灯带提示: LightApi.playEffect("light_effect_blue_breath") 蓝色呼吸灯 ├── 途中避障、等待电梯 └── 屏幕展示: "配送中,请勿打扰" 步骤 4: 到达通知 ├── 到达病房门口 ├── TTS "X 床药品已送到,请护士查收" ├── 屏幕展示: 药品清单、接收码 └── 等待护士接收 步骤 5: 身份确认与交付 ├── 护士刷卡/人脸识别确认身份 ├── 货仓门解锁 ├── 护士取走药品 ├── 重量传感器确认已取 ├── 护士屏幕签收 └── TTS "配送完成,祝您早日康复" 步骤 6: 返回或继续 ├── 如有下一任务 → 前往下一地点 ├── 如无任务 → 返回护士站/充电站 └── 任务状态同步到药房系统 ``` #### 需要对方配合的事项 1. **货仓定制**:在机器人上增加带锁货仓,容量满足常规药品配送 2. **梯控对接**:跨楼层配送需要梯控系统支持 3. **任务调度系统**:多任务时的路径优化和优先级管理 --- ### 3.4 住院呼叫响应 #### 功能描述 患者通过床头呼叫器呼叫,机器人接收呼叫并前往病房响应。 #### 依赖的 RobotOS API **本地端 API:** | API 名称 | 所属模块 | 功能说明 | |---------|---------|---------| | `NavigationComponent` | 功能组件-导航 | 快速前往呼叫病房 | | `speechApi.playText()` | 基础接口-语音 | 询问患者需求 | | `speechApi.setRecognizable(true)` | 基础接口-语音 | 开启语音交互 | | `FaceTrackComponent` | 功能组件-追踪 | 追踪呼叫患者 | **IoT 对接:** | 设备 | 接口 | 说明 | |------|------|------| | 床头呼叫器 | 协议对接 | 接收呼叫信号和床位号 | #### 完整实现路径 ``` 步骤 1: 接收呼叫信号 ├── 床头呼叫器触发 ├── 通过 IoT 协议推送呼叫信息到机器人 │ └── {床位: "X科X床", 类型: "普通呼叫/紧急呼叫", 时间: "..."} └── 机器人判断当前状态: ├── 空闲 → 立即响应 └── 忙碌 → 队列排队或通知护士站 步骤 2: 快速响应 ├── TTS "收到呼叫,马上过来" ├── 调用 NavigationComponent 快速导航到呼叫床位 ├── 参数: param_linear_speed=1.2(最大速度) └── 屏幕展示: "紧急呼叫响应中" 步骤 3: 到达与确认 ├── 到达病房 ├── TTS "您好,我是响应您的呼叫,请问需要什么帮助?" ├── 调用 FaceTrackComponent 追踪患者位置 └── 开启语音识别等待患者回应 步骤 4: 需求处理 ├── 患者说"我要喝水" │ ├── NLP 解析 intent=need_water │ ├── TTS "好的,我通知护士给您送水" │ ├── 推送消息到护士站系统 │ └── 记录呼叫处理结果 ├── 患者说"我不舒服" │ ├── NLP 解析 intent=feel_bad │ ├── TTS "请描述一下您的症状" │ ├── 多轮对话采集症状 │ ├── AI 分析紧急程度 │ └── 紧急呼叫推送给责任护士/医生 └── 患者说"没事,按错了" └── TTS "好的,如有需要随时呼叫" 步骤 5: 离开或留守 ├── 简单需求处理完 → 离开返回 ├── 需等待护士 → 在病房门口留守 │ └── 到达护士后交接 └── 紧急状况 → 持续陪伴直到医护人员到达 ``` #### 需要对方配合的事项 1. **呼叫器协议**:提供床头呼叫器的通信协议文档 2. **紧急响应 SLA**:确保紧急呼叫的响应时间(如 60 秒内到达) 3. **多呼叫队列**:同时多个呼叫时的调度策略 --- ### 3.5 出院结算引导 #### 功能描述 患者出院时,机器人协助完成出院宣教、费用查询、结算引导。 #### 依赖的 RobotOS API **本地端 API:** | API 名称 | 所属模块 | 功能说明 | |---------|---------|---------| | `RecognizeComponent` | 功能组件-人脸 | 识别出院患者 | | `NavigationComponent` | 功能组件-导航 | 引导到结算处 | | `speechApi.playText()` | 基础接口-语音 | 出院宣教播报 | | `ExDisplay` | UI 组件 | 展示出院须知和费用清单 | #### 完整实现路径 ``` 步骤 1: 检测出院患者 ├── HIS 系统推送 "X 床患者今日出院" ├── 机器人在病区巡逻时识别该患者 ├── 或患者主动说"我要出院" └── 触发出院服务流程 步骤 2: 出院宣教 ├── TTS "恭喜您康复出院,以下是出院注意事项" ├── 屏幕展示(ExDisplay): │ ├── 出院带药清单及服用说明 │ ├── 复诊时间和预约方式 │ ├── 居家护理建议 │ └── 紧急联系方式 └── 流式 TTS 播报宣教内容 步骤 3: 费用查询 ├── 患者询问"我的住院费用是多少?" ├── 调用 HIS 接口查询费用明细 ├── 屏幕展示: 费用分类图表 │ ├── 药品费、检查费、治疗费 │ ├── 医保报销金额 │ └── 自付金额 └── TTS 播报费用 summary 步骤 4: 结算引导 ├── 询问: "需要我带您去结算处吗?" ├── 患者同意 → 调用 NavigationComponent ├── 导航到 "住院结算处" ├── 途中 TTS: "结算处在一楼大厅,请携带医保卡和押金条" └── 到达后: "结算处到了,请排队办理" 步骤 5: 服务评价(可选) ├── 结算完成后 ├── 机器人询问: "请对我的服务进行评价" ├── 屏幕展示: 五星评价 + 语音反馈 └── 收集评价数据用于服务改进 ``` --- ### 3.6 夜间巡检 #### 功能描述 夜间时段(22:00-06:00),机器人在病区巡逻,监测异常状况,保障患者安全。 #### 依赖的 RobotOS API **本地端 API:** | API 名称 | 所属模块 | 功能说明 | |---------|---------|---------| | `cronParser.startCronTask()` | 高级功能-定时 | 设置夜间定时巡检 | | `CruiseComponent` | 功能组件-巡逻 | 夜间静音巡逻 | | `PersonAppearComponent` | 功能组件-人脸 | 检测异常人员活动 | | `RobotApi.getBatteryLevel()` | 基础接口-电源 | 监控电量 | | `ChargeStartComponent` | 功能组件-充电 | 低电量自动回充 | **硬件接口:** | 接口 | 说明 | |------|------| | 夜视摄像头 | 低光照环境下的视觉检测 | | 红外传感器 | 人体活动检测 | #### 完整实现路径 ``` 步骤 1: 定时启动 ├── 调用 cronParser.startCronTask ├── 参数: │ ├── id="night_patrol" │ ├── grammar="0 22 * * *"(每晚 22:00 启动) │ └── program="start_night_patrol" └── 夜间巡检模式启动 步骤 2: 静音巡逻 ├── 调用 CruiseComponent ├── 参数调整: │ ├── 关闭 TTS 播报(避免打扰患者休息) │ ├── 降低运动速度(减少噪音) │ └── 关闭灯带特效(仅保留必要指示灯) └── 按设定路线巡逻 步骤 3: 异常检测 ├── 视觉检测(夜视摄像头): │ ├── 检测走廊跌倒人员 │ ├── 检测异常聚集 │ └── 检测烟雾/火焰(如有烟雾传感器) ├── 声音检测: │ ├── 检测呼救声 │ ├── 检测异常响动 │ └── 触发后前往查看 └── 人员识别: └── 检测非医护人员在病区徘徊 步骤 4: 异常响应 ├── 发现异常 → 立即上报护士站 │ ├── 推送消息: "X 病区发现异常,请查看" │ ├── 附带现场照片/视频 │ └── 机器人留守现场 ├── 患者呼叫 → 正常响应 │ └── 但使用更低音量交互 └── 无异常 → 继续巡逻 步骤 5: 电量管理 ├── 定时检查电量: RobotApi.getBatteryLevel() ├── 电量 < 30% → 暂停巡逻 ├── 调用 ChargeStartComponent 自动回充 ├── 充电完成后 → 恢复巡逻 └── 确保 06:00 前完成充电 步骤 6: 晨间交接 ├── 06:00 定时任务触发 ├── 生成夜间巡检报告 │ ├── 巡逻次数和时间 │ ├── 发现的异常情况 │ └── 处理结果 ├── 推送给护士长 └── 机器人切换日间模式 ``` #### 需要对方配合的事项 1. **夜视能力**:确保摄像头支持低光照环境 2. **静音模式**:夜间运动噪音控制 3. **安全认证**:夜间无人值守时的安全性和可靠性 --- ## 四、技术架构方案 ### 4.1 分层架构 ``` ┌─────────────────────────────────────────────────────────────┐ │ 应用层(我方开发) │ │ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │ │ │ 门诊机器人 │ │ 住院机器人 │ │ 管理后台 │ │ │ │ APK/OPK │ │ APK/OPK │ │ Web/App │ │ │ └─────────────┘ └─────────────┘ └─────────────┘ │ ├─────────────────────────────────────────────────────────────┤ │ AI 能力层(我方) │ │ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │ │ │ AI 中台 │ │ 智能体集群 │ │ 知识库 RAG │ │ │ │ 模型仓库 │ │ 门诊/住院/体检│ │ MCP 仓库 │ │ │ └─────────────┘ └─────────────┘ └─────────────┘ │ ├─────────────────────────────────────────────────────────────┤ │ RobotOS 能力层(对方) │ │ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │ │ │ 导航巡逻 │ │ 语音交互 │ │ 视觉感知 │ │ │ │ Navigation │ │ TTS/ASR │ │ 人脸/追踪 │ │ │ └─────────────┘ └─────────────┘ └─────────────┘ │ ├─────────────────────────────────────────────────────────────┤ │ 硬件抽象层(对方) │ │ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │ │ │ 运动底盘 │ │ 传感器组 │ │ 扩展外设 │ │ │ │ 电机/轮子 │ │ 雷达/摄像头 │ │ 读卡器/打印 │ │ │ └─────────────┘ └─────────────┘ └─────────────┘ │ └─────────────────────────────────────────────────────────────┘ ``` ### 4.2 数据流架构 ``` 患者语音/触屏 → RobotOS ASR → NLP 解析 → 我方 AI 中台 → 业务处理 ↓ 机器人控制 ← RobotOS API ← 指令生成 ← 结果返回 ← 知识库/HIS ``` ### 4.3 系统对接清单 | 系统 | 对接方式 | 数据交换 | |------|---------|---------| | HIS | REST API/HL7 | 患者信息、挂号、医嘱 | | LIS | REST API | 检验报告 | | PACS | REST API/DICOM | 影像报告 | | 护理系统 | REST API | 查房记录、护理计划 | | 药房系统 | REST API | 药品信息、配送任务 | | 医保系统 | 专用接口 | 医保结算 | | 床头呼叫器 | IoT 协议 | 呼叫信号 | | 生命体征设备 | 蓝牙/WiFi | 体征数据 | --- ## 五、硬件定制需求清单 ### 5.1 读卡器模块 | 需求项 | 规格要求 | 对接方式 | |--------|---------|---------| | 支持卡类型 | 社保卡、就诊卡、身份证 | 需提供 Android SDK | | 通信接口 | USB/串口 | 标准 HID 或自定义协议 | | 读取内容 | 卡号、姓名、医保类型 | 返回结构化数据 | | 安全要求 | 符合医保安全规范 | 加密传输 | ### 5.2 打印模块 | 需求项 | 规格要求 | 对接方式 | |--------|---------|---------| | 打印类型 | 热敏打印 | ESC/POS 指令集 | | 纸张规格 | 80mm 宽卷纸 | 自动切纸 | | 打印内容 | 挂号单、发票、凭条、报告 | 支持文字/二维码 | | 装纸方式 | 前开盖更换 | 易维护设计 | ### 5.3 梯控模块 | 需求项 | 规格要求 | 对接方式 | |--------|---------|---------| | 支持电梯 | 主流品牌(三菱、奥的斯、日立等) | RS485/Modbus/自定义 | | 控制功能 | 呼梯、选层、开门 | 协议对接 | | 安全认证 | 通过电梯厂商认证 | 符合特种设备规范 | ### 5.4 货仓模块(配送机器人) | 需求项 | 规格要求 | 对接方式 | |--------|---------|---------| | 容量 | 不少于 20 盒药品 | 内部货架设计 | | 电控锁 | 独立控制 | GPIO/串口控制 | | 传感器 | 重量检测、门状态 | 模拟/数字信号 | | 温控(可选) | 2-8°C 冷藏 | 半导体制冷 | --- ## 六、NLP 语音交互定制方案 ### 6.1 Domain/Intent 设计 | Domain | Intent | Slot | 示例语句 | |--------|--------|------|---------| | navigation | guide_to | destination | "带我去内科" | | navigation | query_location | place | "卫生间在哪里" | | registration | register | department, doctor | "我要挂内科专家号" | | inquiry | pre_diagnosis | symptom | "我头痛发烧" | | report | query_report | report_type | "查我的血常规报告" | | payment | pay | amount, method | "我要缴费" | | call | emergency_call | room, type | "呼叫护士" | | delivery | request_delivery | item, destination | "送药到 X 床" | ### 6.2 医疗专精词库 - 科室名称:内科、外科、妇产科、儿科、急诊科等 - 症状描述:头痛、发烧、咳嗽、腹痛、恶心等 - 药品名称:常见药品通用名 - 检查项目:血常规、尿常规、B超、CT、MRI等 - 医保术语:医保卡、自费、报销比例、起付线等 ### 6.3 多轮对话设计 ``` 场景: 预问诊 Bot: 请问您哪里不舒服? User: 我头痛 Bot: 头痛的具体位置是?(额头/两侧/后脑勺) User: 额头 Bot: 这种情况持续多久了? ... ``` --- ## 七、开发路线图 ### 第一阶段:技术验证(1-2 个月) | 周次 | 任务 | 产出 | |------|------|------| | 1-2 | 申请开发者账号、获取 SDK、搭建环境 | 开发环境就绪 | | 3-4 | 开发基础 Demo:导航、语音、人脸 | 可运行 Demo | | 5-6 | 医院地图建模、点位标定 | 地图数据 | | 7-8 | 样板医院对接、需求确认 | 需求文档 | ### 第二阶段:MVP 开发(3-4 个月) | 月次 | 任务 | 产出 | |------|------|------| | 1 | 门诊导诊 APK 开发 | v1.0 版本 | | 2 | 自助挂号缴费集成 | v1.1 版本 | | 3 | 住院查房 APK 开发 | v2.0 版本 | | 4 | HIS 系统对接联调 | 集成测试报告 | ### 第三阶段:试点部署(2-3 个月) | 月次 | 任务 | 产出 | |------|------|------| | 1 | 样板医院部署、培训 | 部署完成 | | 2 | 试运行、问题修复 | 试运行报告 | | 3 | 验收、案例包装 | 标杆案例 | ### 第四阶段:规模推广(持续) - 借助猎户星空销售网络推广 - 持续迭代优化 - 扩展更多医院场景 --- ## 八、风险与应对 | 风险 | 影响 | 应对策略 | |------|------|---------| | RobotOS API 能力不足 | 高 | 早期技术验证,预留自研替代方案 | | 医疗器械认证 | 高 | 提前咨询药监局,按二类器械准备 | | 医院系统对接复杂 | 中 | 标准化接口适配层,降低耦合 | | 隐私数据安全 | 高 | 本地化部署、数据加密、合规审计 | | 患者接受度 | 中 | 人机协作模式,保留人工服务 | | 硬件定制成本高 | 中 | 分阶段定制,优先核心功能 | --- ## 附录 ### A. API 速查表 详见配套文档:[猎户星空API完整参考手册.md](./猎户星空API完整参考手册.md) ### B. 适用机型建议 | 场景 | 推荐机型 | 理由 | |------|---------|------| | 门诊导诊 | 豹小秘 Mini | 支持 TRTC 视频通话,屏幕适中 | | 住院查房 | 豹小秘 2 | 续航长,支持大模型 | | 药品配送 | 豹小递 Max | 载重大,续航长 | | 综合场景 | 招财豹 Pro | 性价比高,功能全面 | ### C. 联系方式 - 猎户星空开发者支持:https://doc.orionstar.com - 开发者平台:https://console.orionbase.cn - OpenAPI 文档:https://openapi.orionstar.com/opendocs/zh/index --- > **文档结束**