From a6a4e0ed5816d5d7d08ef78503fc7c5b2cf3d888 Mon Sep 17 00:00:00 2001 From: weixin_45799331 Date: Wed, 28 Jan 2026 12:11:50 +0800 Subject: [PATCH] =?UTF-8?q?sse=E5=AE=9E=E6=97=B6=E5=BC=80=E5=8F=91=20?= =?UTF-8?q?=E5=BE=AE=E4=BF=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../appservice/impl/TriageQueueAppServiceImpl.java | 4 ++-- .../triageandqueuemanage/sse/CallNumberSseManager.java | 4 +++- .../views/triageandqueuemanage/cardiology/index.vue | 10 ++++++++-- 3 files changed, 13 insertions(+), 5 deletions(-) diff --git a/openhis-server-new/openhis-application/src/main/java/com/openhis/web/triageandqueuemanage/appservice/impl/TriageQueueAppServiceImpl.java b/openhis-server-new/openhis-application/src/main/java/com/openhis/web/triageandqueuemanage/appservice/impl/TriageQueueAppServiceImpl.java index d2d23fc5..448d9702 100644 --- a/openhis-server-new/openhis-application/src/main/java/com/openhis/web/triageandqueuemanage/appservice/impl/TriageQueueAppServiceImpl.java +++ b/openhis-server-new/openhis-application/src/main/java/com/openhis/web/triageandqueuemanage/appservice/impl/TriageQueueAppServiceImpl.java @@ -245,7 +245,7 @@ public class TriageQueueAppServiceImpl implements TriageQueueAppService { selected.setStatus(STATUS_CALLING).setUpdateTime(LocalDateTime.now()); triageQueueItemService.updateById(selected); - // ✅ 叫号后推送 SSE 消息(实时通知显示屏刷新) + // 叫号后推送 SSE 消息(实时通知显示屏刷新) pushDisplayUpdate(selected.getOrganizationId(), selected.getQueueDate(), selected.getTenantId()); return R.ok(true); @@ -332,7 +332,7 @@ public class TriageQueueAppServiceImpl implements TriageQueueAppService { recalcOrders(actualOrgId, null); - // ✅ 完成后推送 SSE 消息(实时通知显示屏刷新) + // 完成后推送 SSE 消息(实时通知显示屏刷新) pushDisplayUpdate(actualOrgId, calling.getQueueDate(), tenantId); return R.ok(true); diff --git a/openhis-server-new/openhis-application/src/main/java/com/openhis/web/triageandqueuemanage/sse/CallNumberSseManager.java b/openhis-server-new/openhis-application/src/main/java/com/openhis/web/triageandqueuemanage/sse/CallNumberSseManager.java index e29ead4e..5fc5e6e4 100644 --- a/openhis-server-new/openhis-application/src/main/java/com/openhis/web/triageandqueuemanage/sse/CallNumberSseManager.java +++ b/openhis-server-new/openhis-application/src/main/java/com/openhis/web/triageandqueuemanage/sse/CallNumberSseManager.java @@ -16,7 +16,9 @@ import java.util.concurrent.CopyOnWriteArraySet; @Component public class CallNumberSseManager { - private static final long NO_TIMEOUT = 0L; + private static final long NO_TIMEOUT = 0L; // 0 表示“永不超时” + // 按科室分组保存连接(消化内科有3个屏、心内科有2个屏) + // 很多屏幕同时连、同时断。故用 ConcurrentHashMap 存储,线程安全。内部分段锁,不阻塞其他科室的操作。 private static final Map> emitterMap = new ConcurrentHashMap<>(); /** diff --git a/openhis-ui-vue3/src/views/triageandqueuemanage/cardiology/index.vue b/openhis-ui-vue3/src/views/triageandqueuemanage/cardiology/index.vue index e2c1a367..1dc1bc3e 100644 --- a/openhis-ui-vue3/src/views/triageandqueuemanage/cardiology/index.vue +++ b/openhis-ui-vue3/src/views/triageandqueuemanage/cardiology/index.vue @@ -815,6 +815,8 @@ const loadDataFromApi = async () => { appointmentType: item.healthcareName ?? '普通', room: item.organizationName ? `${item.organizationName}` : '-', doctor: item.practitionerName ?? '-', + // 当前接口返回的是 practitionerUserId,保存为 practitionerId 供入队使用 + practitionerId: item.practitionerUserId ?? null, matchingRule: '-' // 这里先不做智能规则匹配 })) console.log('【心内科】候选池已加载', originalCandidatePoolList.value.length, '条今天的数据') @@ -1031,7 +1033,9 @@ const handleAddToQueue = async () => { patientId: c.patientId, patientName: c.patientName, healthcareName: c.appointmentType, - practitionerName: c.doctor + practitionerName: c.doctor, + practitionerId: c.practitionerId ?? null, + roomNo: c.roomNo ?? c.room ?? null }) }) @@ -1144,7 +1148,9 @@ const handleAddAllToQueue = async () => { patientId: c.patientId, patientName: c.patientName, healthcareName: c.appointmentType, - practitionerName: c.doctor + practitionerName: c.doctor, + practitionerId: c.practitionerId ?? null, + roomNo: c.roomNo ?? c.room ?? null }) })