| | |
| | | import cn.lihu.jh.module.ecg.controller.admin.room.vo.RoomRespVO; |
| | | import cn.lihu.jh.module.ecg.dal.dataobject.queue.QueueDO; |
| | | import cn.lihu.jh.framework.common.pojo.PageResult; |
| | | import cn.lihu.jh.module.ecg.dal.dataobject.room.RoomDO; |
| | | |
| | | /** |
| | | * 排队 Service 接口 |
| | |
| | | */ |
| | | public interface QueueService { |
| | | |
| | | void setQueueReadyMax(Integer max); |
| | | void initCheckType(); |
| | | void startBiz(); |
| | | void closeBiz(); |
| | | |
| | |
| | | void updatequeue(@Valid QueueSaveReqVO updateReqVO); |
| | | |
| | | /** |
| | | * 更新停诊 |
| | | * |
| | | * @param |
| | | */ |
| | | void updateStop(long roomId,String bedNo); |
| | | |
| | | /** |
| | | * 删除排队 |
| | | * |
| | | * @param id 编号 |
| | |
| | | void deletequeue(Integer id); |
| | | |
| | | /** |
| | | * |
| | | * 一个工位 可能支持多个检查类型, |
| | | */ |
| | | void startHurryUp(); |
| | | void startHurryUpOneBed(Long roomId, String bedNo); |
| | | void startHurryUpOneCheckType(Integer checkType); |
| | | |
| | | void startBedReload(); |
| | | void startResetRoom(Boolean needCloseBed); |
| | | MonitorInfoVO getMonitorInfo(); |
| | | |
| | | ErrorCode startBedOpen(Long roomId, String roomName, String bedNo); |
| | |
| | | ErrorCode startBedDoctorOn(Long roomId, String bedNo, Long docId, String docName); |
| | | ErrorCode startBedDoctorOff(Long roomId, String bedNo, Long docId, String docName); |
| | | ErrorCode startNextPatient(Long roomId, String bedNo); |
| | | ErrorCode startNextInstallPatient(Long roomId, String bedNo); |
| | | |
| | | ErrorCode bedOpen(Long roomId, String roomName, String bedNo); |
| | | ErrorCode bedClose(Long roomId, String bedNo); |
| | | ErrorCode bedDoctorPause(Long roomId, String bedNo, Long docId, String docName); |
| | | ErrorCode bedDoctorResume(Long roomId, String bedNo, Long docId, String docName); |
| | | ErrorCode bedDoctorOn(Long roomId, String bedNo, Long docId, String docName); |
| | | ErrorCode bedDoctorOff(Long roomId, String bedNo, Long docId, String docName); |
| | | ErrorCode nextPatient(Long roomId, String bedNo); |
| | | |
| | | ErrorCode bedReload(); |
| | | CommonResult<RoomRespVO> getRoom(Long roomId, String bedNo, Long docId); |
| | | |
| | | /** |
| | |
| | | */ |
| | | void queue(QueueSaveReqVO queueSaveReqVO); |
| | | |
| | | List<QueueDO> selectBookSeqNumByAppointIdList(List<Long> appointIdList); |
| | | |
| | | /** |
| | | * 把医生候诊的队列塞满 |
| | | */ |
| | | void hurryup(); |
| | | |
| | | /** |
| | | * 医生叫下一位患者 |
| | | * 常规检查 医生叫下一位患者 |
| | | */ |
| | | void finishNextPatient(Long roomId, String bedNo); |
| | | |
| | | /** |
| | | * 医生看完患者 |
| | | * 领用 医生叫下一位患者 |
| | | */ |
| | | void finishReceiveNextPatient(Long roomId, String bedNo); |
| | | |
| | | /** |
| | | * 装机 医生叫下一位患者 |
| | | */ |
| | | void finishInstallNextPatient(Long roomId, String bedNo); |
| | | |
| | | /** |
| | | * 过号排队中患者 |
| | | */ |
| | | void passWaitingPatient( String patId, Integer bookCheckType ); |
| | | |
| | | /** |
| | | * 常规过号、领用过号 |
| | | */ |
| | | void passNextPatient(Long roomId, String bedNo); |
| | | |
| | | List<QueueDO> getDoctorQueueByStatus(Long roomId, String bedNo, List<Byte> statusList); |
| | | /** |
| | | * 装机过号 |
| | | */ |
| | | void passInstallNextPatient(Long roomId, String bedNo); |
| | | |
| | | List<QueueDO> getBedQueueByStatus(Long roomId, String bedNo, List<Integer> statusList); |
| | | |
| | | List<QueueDO> getRoomQueueByStatus(Long roomId, List<Integer> statusList); |
| | | |
| | | PatientStatisticVO getPatientStatistic(Long roomId, String bedNo); |
| | | |
| | | Integer recallPatient(Long roomId, String bedNo, String patId); |
| | | PatientStatisticVO getBedDevReadyStatistic(Long roomId, String bedNo); |
| | | |
| | | Integer patientJump(String patId, Byte jumped ); |
| | | PatientStatisticVO getBedDevInstallStatistic(Long roomId, String bedNo); |
| | | |
| | | void monitorInfo(); |
| | | Integer recallPassWaitingPatient(String patId, Integer checkType); |
| | | |
| | | Integer recallPatient(Long roomId, String bedNo, String patId, Integer checkType); |
| | | |
| | | Integer recallInstallPatient(Long roomId, String bedNo, String patId, Integer checkType, Long roomId_operator, String bedNo_operator); |
| | | |
| | | // ==================== 需求2:撤销「叫号 / 检查完成」 ==================== |
| | | |
| | | /** |
| | | * 撤销「检查完成」:把本工位今日的指定患者从 已就诊(40) 退回 候诊中(20)。 |
| | | * <p> |
| | | * 必须提供 patId + checkType 做精确定位,避免误改其他患者。 |
| | | * |
| | | * @return 受影响行数;0 表示未找到该患者今日的已完成记录 |
| | | */ |
| | | Integer undoFinishPatient(Long roomId, String bedNo, String patId, Integer checkType); |
| | | |
| | | /** |
| | | * 撤销「误点叫号」:把本工位当前 就诊中(30) 的患者退回 候诊中(20)。 |
| | | * |
| | | * @return 受影响行数;0 表示当前无就诊中患者 |
| | | */ |
| | | Integer undoCallPatient(Long roomId, String bedNo); |
| | | |
| | | /** |
| | | * 取本工位今日**最近一位已完成**的患者(供界面提示可撤销对象)。 |
| | | */ |
| | | QueueDO getBedLastFinishedQueueItem(Long roomId, String bedNo); |
| | | |
| | | // ==================== 需求3:停止候诊开关 ==================== |
| | | |
| | | /** |
| | | * 设置「停止候诊」开关(持久化到 {@code clinic_room.stop_ready})。 |
| | | * <p> |
| | | * 开启后:**已有候诊病人继续叫号,但不再新增候诊病人**; |
| | | * 关闭后恢复正常接收。 |
| | | * |
| | | * @param stop true=停止候诊;false=恢复 |
| | | * @return 成功返回 SUCCESS |
| | | */ |
| | | ErrorCode setStopReady(Long roomId, String bedNo, boolean stop); |
| | | |
| | | /** 查询「停止候诊」状态;工位不存在返回 null */ |
| | | Boolean getStopReady(Long roomId, String bedNo); |
| | | |
| | | Integer patientJump(String patId, Integer bookCheckType, Byte jumped ); |
| | | |
| | | List<RoomDO> getDocRoomInfo(Long docId); |
| | | |
| | | List<QueueDO> getCheckRelatedPatient(Long roomId, String bedNo); |
| | | |
| | | List<QueueDO> getInstallRelatedPatient(Long roomId, String bedNo); |
| | | |
| | | // ==================== 需求1:患者信息回填 ==================== |
| | | |
| | | /** |
| | | * 按 {@code applyNo} 从预约单(appointment)回填队列对象的患者信息。 |
| | | * <p> |
| | | * queue 表只存了患者编号/姓名,其余(性别、出生日期、病区、床号、电话、来源、 |
| | | * 就诊卡号、登记时间、开单医师、开单日期、多耐药)都在 appointment 表。 |
| | | * <p> |
| | | * 之所以对外暴露:大屏/诊间屏({@code CallingScreenServiceImpl})直接查 |
| | | * {@code queueMapper},不经过本 Service 的查询方法,需要显式调用本方法补齐。 |
| | | * 不补齐则大屏/诊间屏的患者信息只有姓名(性别/病区/床号等全为空)。 |
| | | * |
| | | * @param queueDOList 队列对象列表(空/null 安全) |
| | | */ |
| | | void fillAppointmentInfo(List<QueueDO> queueDOList); |
| | | } |