Skip to content

场景01:医疗设备校准到期提醒

当前阶段: 🔍 探索中 | 行业: 医疗健康 | 关键词: 设备校准、计量管理、到期提醒 | 返回医疗场景 →


一、需求探索

1.1 痛点时刻

具体场景:

周一上午9点,医务科进行例行检查时发现,CT设备的年度校准计划应在本周五(5月12日)完成,但设备科未收到任何提醒。查询后发现该设备实际已超期3天未校准。

此时面临的问题:

  • CT设备已使用3天,期间检查的患者报告是否有效?
  • 需要立即停用设备,影响当天20多位预约患者
  • 设备科长解释"太忙忘记了",没有自动提醒机制
  • 如果被卫健委检查发现,医院将面临处罚

业务背景:

  • 设备规模:中型医院拥有医疗设备200-500台
  • 校准周期:大型设备(CT、MRI)每年1次,小型设备(血压计、体温计)每半年1次
  • 管理部门:设备科负责校准计划,医务科负责监督
  • 监管要求:《医疗器械监督管理条例》要求定期校准,超期使用将被处罚

1.2 核心痛点

问题1:提醒不及时

  • 校准计划记录在Excel表格中,依赖人工查看
  • 设备科人员日常工作繁忙,容易遗忘
  • 没有自动提醒机制,发现时往往已超期

问题2:优先级不清

  • 所有设备一视同仁,无法区分重点设备
  • CT、MRI等大型设备超期影响更大,但没有特殊提醒
  • 不知道哪些设备即将到期,无法提前安排

问题3:责任不清

  • 超期后无法追溯谁负责、为什么没提醒
  • 设备科和医务科互相推诿责任
  • 缺少完整的提醒和处理记录

1.3 业务规则(行业标准)

《医疗器械监督管理条例》相关要求:

  • 医疗器械使用单位应当按照产品说明书要求进行定期检查、检验、校准、保养、维护(第30条)
  • 发现医疗器械存在安全隐患的,应当立即停止使用(第31条)
  • 未按规定进行校准的,由县级以上卫生主管部门责令改正,给予警告(第66条)

实际业务规则(基于行业调研):

  • 提前7天预警:校准计划到期前7天 → 推送预警给设备科
  • 到期当天报警:校准计划到期 → 推送报警给设备科长和医务科
  • 超期3天停用:超期3天未完成 → 设备自动标记为"停用",禁止开单
  • 重点设备特殊处理:CT、MRI、呼吸机等重点设备 → 提前15天预警

成本测算:

  • 超期成本:设备停用影响患者就诊,CT停用1天损失约2-3万元
  • 处罚成本:被卫健委检查发现,罚款5000-50000元
  • 质量风险:超期设备检查结果可能不准确,影响诊断质量
  • 平衡点:宁可提前提醒,不可超期使用

二、方案设计

2.1 业务规则设计

规则1:到期判定规则

typescript
// 校准到期判定
interface CalibrationDue {
  // 判定条件
  dueDate: Date;              // 计划校准日期
  currentDate: Date;          // 当前日期
  equipmentType: string;      // 设备类型
  priority: 'HIGH' | 'NORMAL'; // 优先级

  // 判定结果
  status: 'NORMAL' | 'WARNING' | 'ALERT' | 'OVERDUE';
  daysRemaining: number;      // 剩余天数(负数表示超期)
  alertLevel: 'INFO' | 'WARNING' | 'CRITICAL';
}

// 判定逻辑
function checkCalibrationDue(
  equipment: Equipment,
  currentDate: Date
): CalibrationDue {
  const dueDate = equipment.nextCalibrationDate;
  const daysRemaining = Math.floor(
    (dueDate.getTime() - currentDate.getTime()) / (1000 * 60 * 60 * 24)
  );

  // 重点设备(CT、MRI、呼吸机)
  const isHighPriority = ['CT', 'MRI', '呼吸机'].includes(equipment.type);
  const warningDays = isHighPriority ? 15 : 7;

  if (daysRemaining < -3) {
    // 超期3天 → 设备停用
    return {
      status: 'OVERDUE',
      daysRemaining,
      alertLevel: 'CRITICAL',
      action: '设备已停用,禁止开单'
    };
  } else if (daysRemaining < 0) {
    // 已超期 → 报警
    return {
      status: 'ALERT',
      daysRemaining,
      alertLevel: 'CRITICAL',
      action: '立即安排校准'
    };
  } else if (daysRemaining === 0) {
    // 到期当天 → 报警
    return {
      status: 'ALERT',
      daysRemaining: 0,
      alertLevel: 'CRITICAL',
      action: '今日必须完成校准'
    };
  } else if (daysRemaining <= warningDays) {
    // 提前预警
    return {
      status: 'WARNING',
      daysRemaining,
      alertLevel: 'WARNING',
      action: '请提前安排校准'
    };
  }

  return { status: 'NORMAL', daysRemaining };
}

规则2:自动提醒规则

typescript
// 自动提醒动作
interface AutoReminder {
  // 提前15天(仅重点设备)
  day_15_before: {
    condition: '重点设备(CT、MRI、呼吸机) && 距离到期15天';
    notifyTo: ['设备科长', '设备管理员'];
    channel: ['系统消息', '微信'];
    message: 'CT设备校准计划将在15天后到期,请提前联系计量机构';
  };

  // 提前7天(所有设备)
  day_7_before: {
    condition: '距离到期7天';
    notifyTo: ['设备科长', '设备管理员'];
    channel: ['系统消息', '微信', '短信'];
    message: '血压计校准计划将在7天后到期,请及时安排';
  };

  // 到期当天
  due_day: {
    condition: '到期当天';
    notifyTo: ['设备科长', '医务科长'];
    channel: ['系统消息', '微信', '短信', '电话'];
    message: 'CT设备校准计划今日到期,请立即处理';
    priority: 'HIGH';
  };

  // 超期每天提醒
  overdue_daily: {
    condition: '超期未完成';
    notifyTo: ['设备科长', '医务科长', '分管院长'];
    channel: ['系统消息', '微信', '短信'];
    message: 'CT设备校准已超期3天,设备已停用';
    frequency: '每天上午9:00';
  };
}

规则3:设备停用规则

typescript
// 设备停用逻辑
interface EquipmentSuspension {
  // 停用条件
  condition: {
    overdueDays: number;      // 超期天数 > 3
    equipmentStatus: string;  // 设备状态 = '在用'
  };

  // 停用动作
  actions: {
    updateStatus: '设备状态 → 停用';
    blockOrders: '禁止开单(HIS系统联动)';
    notifyDepartments: ['使用科室', '医务科', '设备科'];
    displayWarning: '设备列表显示红色"停用"标识';
  };

  // 恢复条件
  resumeCondition: {
    calibrationCompleted: true;  // 完成校准
    reportUploaded: true;        // 上传校准报告
    approvedBy: '医务科长';      // 医务科审核通过
  };
}

2.2 技术方案

技术架构

设备管理系统 → 定时任务(每天凌晨1点) → 规则引擎 → 提醒推送

              校准计划数据

              HIS系统联动(设备停用)

核心技术点

1. 定时任务调度

  • 执行时间:每天凌晨1:00检查所有设备
  • 检查范围:状态为"在用"的设备
  • 数据来源:设备管理系统的校准计划表

2. 到期判断逻辑

  • 计算剩余天数:(到期日期 - 当前日期) / 86400000
  • 判断设备优先级:重点设备提前15天,普通设备提前7天
  • 判断超期状态:超期3天自动停用

3. 规则引擎

  • 基于时间窗口的规则判断
  • 支持规则配置(提前天数、超期天数可调整)
  • 支持设备分类(重点设备、普通设备)

4. 提醒推送

  • 多通道推送:系统消息、微信、短信、电话
  • 分级推送:预警(微信)、报警(微信+短信)、严重(微信+短信+电话)
  • 推送确认:重要提醒需要确认收到

5. HIS系统联动

  • 设备超期3天 → 自动更新设备状态为"停用"
  • HIS开单时检查设备状态,停用设备无法开单
  • 完成校准后 → 上传报告 → 医务科审核 → 恢复"在用"

数据模型

typescript
// 设备信息
interface Equipment {
  id: string;
  name: string;               // 设备名称
  model: string;              // 型号
  serialNumber: string;       // 序列号
  type: string;               // 设备类型(CT、MRI、血压计等)
  department: string;         // 使用科室
  status: 'IN_USE' | 'SUSPENDED' | 'SCRAPPED';  // 设备状态
  priority: 'HIGH' | 'NORMAL'; // 优先级
}

// 校准计划
interface CalibrationPlan {
  id: string;
  equipmentId: string;
  equipmentName: string;
  lastCalibrationDate: Date;  // 上次校准日期
  nextCalibrationDate: Date;  // 下次校准日期
  calibrationCycle: number;   // 校准周期(月)
  status: 'PENDING' | 'COMPLETED' | 'OVERDUE';

  // 提醒记录
  reminders: {
    sentAt: Date;
    type: 'WARNING' | 'ALERT' | 'OVERDUE';
    recipients: string[];
    confirmed: boolean;
  }[];

  // 完成记录
  completion: {
    completedAt: Date;
    calibrationAgency: string;  // 校准机构
    reportNumber: string;       // 报告编号
    reportFile: string;         // 报告文件
    approvedBy: string;         // 审核人
    approvedAt: Date;
  };
}

三、AI辅助开发方案

3.1 技术迁移分析

复用已有资产:矿山场景的"设备巡检到期预警"规则

相似点:

  • 都是基于时间的到期判断
  • 都需要提前预警 + 到期报警
  • 都需要分级提醒 + 处置闭环

差异点:

维度矿山场景医疗场景
判断对象巡检计划校准计划
预警时间到期前30分钟到期前7天(重点设备15天)
超期处理必须补检超期3天设备停用
系统联动HIS系统(禁止开单)

技术复用度:95%

  • 规则引擎逻辑:100%复用
  • 提醒推送逻辑:100%复用
  • 到期判断逻辑:95%复用(调整时间阈值)
  • 新增:HIS系统联动(5%新开发)

3.2 Cursor Skill设计

Skill名称: inspection-overdue-alert.md (直接复用)

调整说明:

  • 将"巡检计划"改为"校准计划"
  • 将"30分钟/2小时"改为"7天/15天"
  • 新增"超期3天停用"规则
  • 新增"HIS系统联动"逻辑

3.3 PROMPT模板

PROMPT 1:生成到期判断代码

你是一个业务逻辑开发专家。请根据以下业务规则,生成医疗设备校准到期判断的代码。

## 业务场景
医疗设备需要定期校准,校准计划到期前需要自动提醒,超期未完成需要停用设备。

## 业务规则
1. 到期判定:
   - 提前15天(仅重点设备:CT、MRI、呼吸机) → 预警
   - 提前7天(所有设备) → 预警
   - 到期当天 → 报警
   - 超期1-3天 → 报警
   - 超期3天以上 → 设备停用

2. 提醒推送:
   - 预警:推送给设备科长、设备管理员(微信)
   - 报警:推送给设备科长、医务科长(微信+短信)
   - 停用:推送给设备科长、医务科长、分管院长(微信+短信+电话)

3. 设备停用:
   - 超期3天 → 设备状态改为"停用"
   - HIS系统联动 → 禁止开单
   - 通知使用科室

## 数据模型
- Equipment:设备信息(id, name, type, status, priority)
- CalibrationPlan:校准计划(equipmentId, nextCalibrationDate, status)

## 技术要求
- 使用TypeScript
- 定时任务(每天凌晨1:00执行)
- 支持规则配置(提前天数、超期天数可调整)
- 记录所有提醒和处理过程

请生成完整的代码实现。

PROMPT 2:生成HIS系统联动代码

你是一个业务逻辑开发专家。请根据以下业务规则,生成设备停用时HIS系统联动的代码。

## 业务场景
医疗设备校准超期3天后,需要自动停用设备,并在HIS系统中禁止开单。

## 业务规则
1. 设备停用:
   - 更新设备状态为"停用"
   - 记录停用原因、停用时间、操作人

2. HIS系统联动:
   - 调用HIS接口,更新设备状态
   - HIS开单时检查设备状态,停用设备无法开单
   - 返回提示:"该设备校准已超期,暂停使用"

3. 恢复使用:
   - 完成校准 → 上传校准报告
   - 医务科审核通过 → 恢复"在用"状态
   - HIS系统同步更新

## 技术要求
- 调用HIS系统API(RESTful接口)
- 支持事务回滚(设备状态更新失败时回滚)
- 记录所有操作日志

请生成完整的代码实现。

3.4 开发周期预估

基于已有资产(矿山场景):

  • 原型验证:1天

    • Day 1:复用inspection-overdue-alert规则,调整时间阈值,测试到期判断
  • 首版上线:3-5天

    • Day 2:完善提醒推送逻辑,对接微信/短信
    • Day 3:开发HIS系统联动接口
    • Day 4:测试设备停用和恢复流程
    • Day 5:部署上线
  • 迭代优化:根据实际使用反馈调整提前天数、优化提醒策略


四、开发资产

4.1 Cursor Skill

文件名: inspection-overdue-alert.md (复用矿山场景)

调整内容:

markdown
# 设备校准到期提醒规则

## 业务场景
医疗设备需要定期校准,校准计划到期前需要自动提醒,超期未完成需要停用设备。

## 核心业务规则

### 1. 到期判定规则

**规则一:提前预警(重点设备)**
```typescript
// 重点设备提前15天预警
function checkHighPriorityWarning(
  equipment: Equipment,
  plan: CalibrationPlan,
  currentDate: Date
): boolean {
  const isHighPriority = ['CT', 'MRI', '呼吸机'].includes(equipment.type);
  const daysRemaining = Math.floor(
    (plan.nextCalibrationDate.getTime() - currentDate.getTime()) / (1000 * 60 * 60 * 24)
  );
  return isHighPriority && daysRemaining === 15;
}

规则二:提前预警(所有设备)

typescript
// 所有设备提前7天预警
function checkNormalWarning(
  plan: CalibrationPlan,
  currentDate: Date
): boolean {
  const daysRemaining = Math.floor(
    (plan.nextCalibrationDate.getTime() - currentDate.getTime()) / (1000 * 60 * 60 * 24)
  );
  return daysRemaining === 7;
}

规则三:到期报警

typescript
// 到期当天报警
function checkDueAlert(
  plan: CalibrationPlan,
  currentDate: Date
): boolean {
  const daysRemaining = Math.floor(
    (plan.nextCalibrationDate.getTime() - currentDate.getTime()) / (1000 * 60 * 60 * 24)
  );
  return daysRemaining === 0;
}

规则四:超期停用

typescript
// 超期3天停用设备
function checkOverdueSuspension(
  plan: CalibrationPlan,
  currentDate: Date
): boolean {
  const daysOverdue = Math.floor(
    (currentDate.getTime() - plan.nextCalibrationDate.getTime()) / (1000 * 60 * 60 * 24)
  );
  return daysOverdue >= 3;
}

2. 自动提醒规则

规则一:分级推送

typescript
async function sendReminder(
  equipment: Equipment,
  plan: CalibrationPlan,
  alertType: 'WARNING' | 'ALERT' | 'SUSPENSION'
) {
  const config = {
    WARNING: {
      recipients: ['设备科长', '设备管理员'],
      channels: ['系统消息', '微信'],
      priority: 'NORMAL'
    },
    ALERT: {
      recipients: ['设备科长', '医务科长'],
      channels: ['系统消息', '微信', '短信'],
      priority: 'HIGH'
    },
    SUSPENSION: {
      recipients: ['设备科长', '医务科长', '分管院长'],
      channels: ['系统消息', '微信', '短信', '电话'],
      priority: 'CRITICAL'
    }
  };

  await notificationService.send({
    ...config[alertType],
    message: generateMessage(equipment, plan, alertType)
  });
}

3. 设备停用规则

规则一:自动停用

typescript
async function suspendEquipment(equipment: Equipment, plan: CalibrationPlan) {
  // 1. 更新设备状态
  await equipmentService.updateStatus(equipment.id, 'SUSPENDED', {
    reason: '校准超期',
    suspendedAt: new Date(),
    operator: 'SYSTEM'
  });

  // 2. HIS系统联动
  await hisService.updateEquipmentStatus(equipment.id, 'SUSPENDED');

  // 3. 通知相关科室
  await notificationService.send({
    recipients: [equipment.department, '医务科', '设备科'],
    message: `${equipment.name}因校准超期已停用,请勿使用`
  });
}

规则二:恢复使用

typescript
async function resumeEquipment(
  equipment: Equipment,
  calibrationReport: CalibrationReport
) {
  // 1. 验证校准报告
  if (!calibrationReport.approvedBy) {
    throw new Error('校准报告未经医务科审核');
  }

  // 2. 更新设备状态
  await equipmentService.updateStatus(equipment.id, 'IN_USE', {
    reason: '校准完成',
    resumedAt: new Date(),
    operator: calibrationReport.approvedBy
  });

  // 3. HIS系统联动
  await hisService.updateEquipmentStatus(equipment.id, 'IN_USE');

  // 4. 更新校准计划
  await calibrationPlanService.complete(equipment.id, calibrationReport);
}

数据模型

设备信息

typescript
interface Equipment {
  id: string;
  name: string;
  type: string;
  status: 'IN_USE' | 'SUSPENDED' | 'SCRAPPED';
  priority: 'HIGH' | 'NORMAL';
  department: string;
}

校准计划

typescript
interface CalibrationPlan {
  id: string;
  equipmentId: string;
  nextCalibrationDate: Date;
  status: 'PENDING' | 'COMPLETED' | 'OVERDUE';
  reminders: {
    sentAt: Date;
    type: 'WARNING' | 'ALERT' | 'SUSPENSION';
    recipients: string[];
  }[];
}

关键处理流程

  1. 定时检查 → 每天凌晨1:00检查所有设备
  2. 到期判断 → 计算剩余天数,判断预警/报警/停用
  3. 自动提醒 → 分级推送给相关人员
  4. 设备停用 → 超期3天自动停用,HIS系统联动
  5. 恢复使用 → 完成校准 → 上传报告 → 审核通过 → 恢复

开发注意事项

  1. 时间阈值可配置:不要硬编码7天/15天,支持运营人员配置
  2. 设备分类:区分重点设备和普通设备,提前天数不同
  3. HIS系统联动:确保设备状态同步,避免停用设备仍可开单
  4. 数据留痕:所有提醒、停用、恢复操作必须记录

相似场景复用

这个规则可以复用到:

  • 药品效期管理:药品效期到期前提醒
  • 资质证书管理:医护人员资质证书到期提醒
  • 合同管理:设备维保合同到期提醒

### 4.2 技术迁移说明

**可复用的已有资产:**

1. **矿山场景:设备巡检到期预警规则**
   - 复用:规则引擎框架、提醒推送逻辑、到期判断逻辑
   - 调整:时间阈值(30分钟/2小时 → 7天/15天)
   - 复用度:95%

2. **新增部分:**
   - HIS系统联动接口(5%)
   - 设备停用和恢复逻辑

### 4.3 实施指南

**步骤1:准备环境**
```bash
# 安装依赖
npm install

# 配置HIS系统接口
# 编辑 config/his-config.json

步骤2:使用Cursor Skill

1. 将 inspection-overdue-alert.md 保存到 .cursor/rules/
2. 在Cursor中告诉AI:
   "参考 inspection-overdue-alert.md 中的业务规则,
   实现医疗设备校准到期提醒功能"
3. AI会基于规则生成代码

步骤3:调整配置

typescript
// config/calibration-rules.ts
export const CALIBRATION_CONFIG = {
  highPriorityWarningDays: 15,   // 重点设备提前15天
  normalWarningDays: 7,          // 普通设备提前7天
  suspensionDays: 3,             // 超期3天停用
  highPriorityTypes: ['CT', 'MRI', '呼吸机'],
};

步骤4:测试验证

bash
# 运行测试
npm test

# 模拟到期场景
npm run simulate:calibration-due

五、下一步行动

如果您对这个场景感兴趣

  1. 快速验证:我们可以用1天时间,基于模拟数据做原型演示
  2. 技术对接:提供HIS系统接口文档,评估对接工作量
  3. 成本预估:根据设备数量、提醒频率,给出详细报价

相关场景

相关资产


← 返回医疗场景 | 联系合作 →

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