本文档描述了在曝光成功后自动接受图像的功能实现。该功能通过监听MQTT消息,在图像处理完成并成功后自动调用接受图像接口。
在DR系统的检查流程中,当曝光完成并成功处理图像后,系统需要自动接受该图像,避免手动操作,提高工作效率。
文件: src/domain/mqttService.ts
修改内容: 在 handleMqttMessage
函数的 TASK_Success
分支中添加自动接受逻辑
曝光触发
↓
图像采集
↓
图像处理 (多个阶段)
↓
MQTT 推送进度状态
- TASK_RecvRaw (已获取原图)
- TASK_RecvMask (已获取mask)
- TASK_RecvEnhance (已完成增强)
- TASK_RecvForeground (已获取前景mask)
- TASK_RecvApply (已完成遮罩mask)
- TASK_Success (成功存储dcm) ✨
↓
自动接受图像
Topic: MODULE/TASK/IMGPROC/PROGRESS
消息结构:
interface MqttMessage {
dcm?: string; // dcm文件名
message: string; // 消息内容
sop?: string; // SOP实例UID (图像ID)
status: string; // 状态
thumbnail?: string; // 缩略图文件名
}
成功消息示例:
{
"dcm": "20250801150247.dcm",
"message": "",
"sop": "20250801150247",
"status": "TASK_Success",
"thumbnail": "20250801150247.webp"
}
import { judgeImage } from '../API/exam/judgeImage';
在 TASK_Success
分支中添加:
case 'TASK_Success':
console.log('Task succeeded:', message);
// Handle success, e.g., process DCM and thumbnail files
emitter.emit('TASK_SUCCESS', message);
emitter.emit('ACQUISITION_SUCCESS');
// 自动接受图像
if (message.sop) {
judgeImage(message.sop, true)
.then(() => {
console.log(`图像 ${message.sop} 已自动接受`);
})
.catch((error) => {
console.error(`自动接受图像失败:`, error);
});
}
break;
TASK_Success
状态时:
POST /api/v1/auth/task/inspection/judge
instance_uid
: 图像的SOP实例UID (从MQTT消息的 sop
字段获取)accept
: true (固定为接受)// 从MQTT消息中提取SOP实例UID
const sopInstanceUid = message.sop; // 例如: "20250801150247"
// 调用接受图像API
await judgeImage(sopInstanceUid, true);
TASK_SUCCESS
, ACQUISITION_SUCCESS
)观察控制台日志:
Task succeeded: {dcm: "xxx.dcm", sop: "xxx", status: "TASK_Success", ...}
图像 xxx 已自动接受
确认图像状态已更新为"已接受"
src/domain/mqttService.ts
- MQTT消息处理(实现位置)src/API/exam/judgeImage.ts
- 接受/拒绝图像APIdocs/DR.md
- 后端API文档(第37、38节)如果需要添加开关控制:
// 在Redux状态中添加配置
interface ExamSettings {
autoAcceptImage: boolean;
}
// 在MQTT处理中检查配置
if (message.sop && getState().exam.settings.autoAcceptImage) {
judgeImage(message.sop, true)
.then(() => console.log(`图像 ${message.sop} 已自动接受`))
.catch((error) => console.error(`自动接受图像失败:`, error));
}
judgeImage
API已正确实现并测试sop
字段必须是有效的SOP实例UID文档创建时间: 2025年10月13日
最后更新: 2025年10月13日