Skip to content

系统落地:医废全流程追溯系统

← 上一阶段:开发资产


系统实现

这个场景已经作为独立的"医废全流程追溯系统"落地实施。

在完整系统中的位置

医废全流程追溯系统
├── 科室收集管理
│   ├── 蓝牙秤称重
│   ├── 标签打印
│   └── 双人交接确认
├── 院内转运监控
│   ├── GPS 轨迹追踪
│   ├── 路线验证
│   └── 异常报警
├── 暂存间管理
│   ├── 入库管理
│   ├── 超期预警
│   └── 出库移交
└── 合规报表
    ├── 电子联单
    ├── 数据统计
    └── 监管对接

功能模块

1. PDA 端(收集人员)

收集界面:

┌───────────────────────────┐
│  医废收集                  │
├───────────────────────────┤
│  科室:内科                 │
│  收集人员:张师傅           │
│                           │
│  选择医废类型:             │
│  [ ] 感染性                │
│  [ ] 损伤性                │
│  [ ] 病理性                │
│  [ ] 药物性                │
│  [ ] 化学性                │
│                           │
│  称重:                    │
│  ┌─────────────────────┐ │
│  │  0.00 kg             │ │
│  │  [连接蓝牙秤]        │ │
│  └─────────────────────┘ │
│                           │
│  标签信息:                │
│  标签号:MW202501160001   │
│  重量:5.2 kg             │
│                           │
│  [打印标签]                │
│                           │
│  科室护士确认:            │
│  [扫码确认]                │
│                           │
│  [完成收集]                │
└───────────────────────────┘

转运界面:

┌───────────────────────────┐
│  医废转运                  │
├───────────────────────────┤
│  收集记录:                 │
│  科室:内科                 │
│  医废类型:感染性           │
│  总重量:15.5 kg           │
│  标签数:3 袋              │
│                           │
│  GPS 轨迹:                │
│  [开始转运]                │
│                           │
│  当前状态:转运中           │
│  当前位置:1号楼-2层       │
│  距离暂存间:200米         │
│                           │
│  路线验证:正常 ✓          │
│  速度验证:正常 ✓          │
│                           │
│  [到达暂存间]              │
└───────────────────────────┘

核心功能:

  • ✓ 蓝牙电子秤自动称重
  • ✓ 现场打印医废标签
  • ✓ GPS 轨迹实时记录
  • ✓ 路线偏离自动报警

2. 管理端(Web 后台)

实时监控看板:

┌─────────────────────────────────────┐
│  医废全流程追溯系统 - 实时监控         │
├─────────────────────────────────────┤
│                                     │
│  今日数据                            │
│  ┌──────┐ ┌──────┐ ┌──────┐        │
│  │ 收集 │ │ 转运 │ │ 入库 │        │
│  │ 45次 │ │ 42次 │ │ 40次 │        │
│  └──────┘ └──────┘ └──────┘        │
│                                     │
│  实时状态                            │
│  ┌─────────────────────────────┐   │
│  │ 收集人员:张师傅              │   │
│  │ 当前科室:外科                │   │
│  │ 状态:收集中                  │   │
│  │ 已收集:8.5 kg               │   │
│  └─────────────────────────────┘   │
│                                     │
│  ┌─────────────────────────────┐   │
│  │ 收集人员:李师傅              │   │
│  │ 当前状态:转运中              │   │
│  │ 位置:2号楼-3层              │   │
│  │ 路线:正常 ✓                 │   │
│  └─────────────────────────────┘   │
│                                     │
│  异常预警                            │
│  ⚠️ 暂存间有 3 袋医废接近 48 小时    │
│  ⚠️ 收集人员王师傅偏离路线 80 米     │
│                                     │
│  [查看详细报表]                      │
└─────────────────────────────────────┘

轨迹查看:

┌───────────────────────────┐
│  转运轨迹                  │
├───────────────────────────┤
│  收集记录:MW202501160001  │
│  收集人员:张师傅           │
│  收集时间:08:30           │
│                           │
│  [地图显示轨迹]             │
│                           │
│  轨迹分析:                │
│  ✓ 路线验证:正常           │
│  ✓ 速度验证:正常           │
│  ✓ 时间窗口:正常           │
│  ✓ 停留检测:正常           │
│                           │
│  关键节点:                │
│  • 08:30 开始转运          │
│  • 08:35 到达1号楼         │
│  • 08:40 到达2号楼         │
│  • 08:45 到达暂存间        │
│  • 08:46 完成入库          │
│                           │
│  总用时:16分钟            │
│  总距离:850米            │
└───────────────────────────┘

暂存间管理:

┌─────────────────────────────────────┐
│  暂存间库存管理                      │
├─────────────────────────────────────┤
│  筛选:[全部] [感染性] [损伤性] [超期] │
│                                     │
│  标签号    │ 类型 │ 重量 │ 入库时间 │ 状态 │
│  ─────────────────────────────────  │
│  MW001    │ 感染 │ 5.2kg│ 08:30   │ 正常 │
│  MW002    │ 感染 │ 4.8kg│ 08:35   │ 正常 │
│  MW003    │ 损伤 │ 2.1kg│ 07:20   │⚠️超期│
│                                     │
│  总库存:12.1 kg                    │
│  超期预警:1 袋                      │
│                                     │
│  [批量出库] [导出报表]               │
└─────────────────────────────────────┘

合规报表:

┌─────────────────────────────────────┐
│  合规报表                            │
├─────────────────────────────────────┤
│  报表类型:                          │
│  [ ] 医废产生统计表                  │
│  [ ] 医废转运统计表                  │
│  [ ] 医废处置统计表                  │
│  [ ] 电子转移联单                    │
│                                     │
│  时间范围:                          │
│  [2025-01-01] 至 [2025-01-31]       │
│                                     │
│  [生成报表] [导出 Excel] [上报监管]  │
└─────────────────────────────────────┘

实施效果

定量效果

指标上线前上线后提升
称重数据准确率~70%100%⬆️ 42.9%
交接时间5 分钟/次2 分钟/次⬇️ 60%
路线违规率~25%<2%⬇️ 92%
超期医废数量5-10 袋/月0-1 袋/月⬇️ 90%
迎检准备时间2-3 天30 分钟⬇️ 95%
合规率~85%100%⬆️ 17.6%

定性效果

院感科反馈:

"最大的变化是数据准确了,以前手工记录,经常有误差,现在蓝牙秤自动称重,数据100%准确。而且全程可追溯,一旦出问题,能快速找到责任人。" —— 王主任(院感科)

收集人员反馈:

"以前要手工记录重量,容易出错,现在蓝牙秤自动称重,标签自动打印,省事多了。而且路线有GPS监控,我们也不敢抄近路了。" —— 张师傅(收集人员)

后勤科反馈:

"以前每次卫监、环保部门来检查,我们都要准备大量的纸质联单,整理起来很麻烦。现在系统自动生成电子联单,30分钟就能准备好所有资料。" —— 李科长(后勤科)

技术实现

技术栈

后端:

  • Java Spring Boot
  • MySQL 数据库
  • Redis 缓存
  • WebSocket 实时通信

前端:

  • Android App(PDA 端)
  • Vue 3 + Element Plus(PC 管理后台)

硬件:

  • PDA 手持终端(Android 系统)
  • 蓝牙电子秤(精度 ±0.1kg)
  • 便携热敏打印机
  • GPS 定位模块

集成:

  • 卫健委监管平台对接
  • 环保局监管平台对接

核心代码片段

typescript
// GPS 轨迹验证服务
class TrajectoryValidationService {
  async validateTrajectory(
    trajectoryId: string,
    plannedRoute: Route
  ): Promise<ValidationResult> {
    // 1. 获取轨迹数据
    const trajectory = await this.getTrajectory(trajectoryId);
    
    // 2. 验证路线偏离
    const deviationResult = await this.checkRouteDeviation(
      trajectory.points,
      plannedRoute.points,
      50 // 最大允许偏离 50 米
    );
    
    // 3. 验证速度合理性
    const speedCheck = this.checkSpeedReasonableness(trajectory.points);
    
    // 4. 验证轨迹跳跃
    const jumpCheck = this.checkTrajectoryJump(trajectory.points);
    
    // 5. 验证时间窗口
    const timeWindowCheck = await this.checkTimeWindow(
      trajectory.startTime,
      trajectory.endTime,
      plannedRoute.startTime,
      plannedRoute.endTime,
      30 // 时间窗口 30 分钟
    );
    
    // 6. 验证异常停留
    const stayCheck = this.checkAbnormalStay(trajectory.points, 10);
    
    // 7. 汇总验证结果
    const result = {
      isValid: !deviationResult.shouldAlert &&
               !speedCheck.hasAbnormalSpeed &&
               !jumpCheck.isSuspicious &&
               timeWindowCheck.isInTimeWindow &&
               !stayCheck.shouldAlert,
      deviationResult,
      speedCheck,
      jumpCheck,
      timeWindowCheck,
      stayCheck
    };
    
    // 8. 如果有违规,记录并报警
    if (!result.isValid) {
      await this.recordViolations(trajectoryId, result);
      await this.notifyAdmin({
        type: 'TRAJECTORY_VIOLATION',
        trajectoryId,
        violations: this.extractViolations(result)
      });
    }
    
    return result;
  }
}

扩展应用

这个场景的逻辑已经被复用到以下场景:

  1. 危险品运输监控 - 危险品运输路线验证
  2. 巡检轨迹验证 - 安保巡检、设备巡检轨迹验证
  3. 配送路线监控 - 外卖配送、物流配送路线验证

查看完整系统

本场景是独立的"医废全流程追溯系统"。

系统演示

如需查看系统演示或了解部署方案,请 联系我们 →


相关链接

基于 AI 辅助开发,快速、灵活、可靠