9. 监控与可观测
9.1 业务指标
核心业务指标
智能医疗系统的核心业务指标用于评估诊断质量和业务效果:
诊断质量指标
1. 诊断准确率(Diagnosis Accuracy)
- 定义:AI诊断结果与医生诊断一致的比例
- 计算公式:准确率 = (正确诊断数 / 总诊断数) × 100%
- 目标值:≥95%
- 监控频率:实时监控,每小时统计
2. 早期病变检出率(Early Lesion Detection Rate)
- 定义:AI检出早期病变的比例
- 计算公式:检出率 = (检出早期病变数 / 实际早期病变数) × 100%
- 目标值:≥90%
- 监控频率:每天统计
3. 诊断一致性(Diagnosis Consistency)
- 定义:不同医生对AI诊断结果的一致性
- 计算公式:一致性 = (一致诊断数 / 总诊断数) × 100%
- 目标值:≥90%
- 监控频率:每周统计
4. 漏诊率(Missed Diagnosis Rate)
- 定义:AI未检出但实际存在的病变比例
- 计算公式:漏诊率 = (漏诊数 / 实际病变数) × 100%
- 目标值:≤2%
- 监控频率:每天统计
效率指标
5. 平均诊断时间(Average Diagnosis Time)
- 定义:从影像上传到诊断报告生成的平均时间
- 计算公式:平均时间 = 总诊断时间 / 诊断数
- 目标值:≤30秒/张
- 监控频率:实时监控,每分钟统计
6. 报告出具时间(Report Generation Time)
- 定义:从诊断完成到报告出具的时间
- 计算公式:平均时间 = 总报告时间 / 报告数
- 目标值:≤4小时
- 监控频率:实时监控,每小时统计
7. 系统吞吐量(System Throughput)
- 定义:系统每秒处理的诊断数量
- 计算公式:吞吐量 = 诊断数 / 时间(秒)
- 目标值:≥10诊断/秒
- 监控频率:实时监控
指标监控
监控架构
监控实现
Prometheus配置:
global:
scrape_interval: 15s
evaluation_interval: 15s
scrape_configs:
- job_name: 'medical-ai-service'
static_configs:
- targets: ['localhost:8000']
metrics_path: '/metrics'
指标收集代码:
from prometheus_client import Counter, Histogram, Gauge
import time
# 定义指标
diagnosis_accuracy = Gauge('diagnosis_accuracy', 'Diagnosis accuracy rate')
diagnosis_time = Histogram('diagnosis_time_seconds', 'Diagnosis time in seconds')
diagnosis_total = Counter('diagnosis_total', 'Total number of diagnoses', ['status'])
early_detection_rate = Gauge('early_detection_rate', 'Early lesion detection rate')
# 记录指标
def handle_diagnosis(image_path: str):
start_time = time.time()
# 执行诊断
result = diagnose_image(image_path)
# 记录诊断时间
diagnosis_time.observe(time.time() - start_time)
# 记录诊断总数
diagnosis_total.labels(status=result['status']).inc()
# 更新准确率
if result['verified']:
accuracy = calculate_accuracy(result)
diagnosis_accuracy.set(accuracy)
# 更新早期检出率
if result['early_lesion']:
detection_rate = calculate_detection_rate()
early_detection_rate.set(detection_rate)