package cn.lihu.jh.module.ecg.controller.admin.queue.vo;
|
|
import cn.lihu.jh.module.ecg.dal.dataobject.patient.PatDetails;
|
import com.alibaba.excel.annotation.ExcelProperty;
|
import com.baomidou.mybatisplus.annotation.TableField;
|
import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler;
|
import io.swagger.v3.oas.annotations.media.Schema;
|
import lombok.*;
|
|
import javax.validation.constraints.NotEmpty;
|
import javax.validation.constraints.NotNull;
|
import java.time.LocalDate;
|
import java.util.List;
|
import java.util.Map;
|
|
|
@Schema(description = "管理后台 - 排队新增/修改 Request VO")
|
@Data
|
public class QueueSaveReqVO {
|
|
@Schema(description = "id", requiredMode = Schema.RequiredMode.REQUIRED, example = "21320")
|
private Integer id;
|
|
@Schema(description = "预约申请号", example = "2024435")
|
private String applyNo;
|
|
@Schema(description = "就诊流水号", example = "2024435")
|
private String episodeId;
|
|
@Schema(description = "内部预约编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "21320")
|
private Long appointId;
|
|
@Schema(description = "患者编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "30473")
|
@NotEmpty(message = "患者编号不能为空")
|
private String patId;
|
|
@Schema(description = "患者姓名", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋艿")
|
@NotEmpty(message = "患者姓名不能为空")
|
private String patName;
|
|
@Schema(description = "患者性别")
|
private Byte patGender;
|
|
@Schema(description = "患者详情")
|
private PatDetails patDetails;
|
|
@Schema(description = "预约日期", requiredMode = Schema.RequiredMode.REQUIRED)
|
@NotNull(message = "预约日期不能为空")
|
private LocalDate bookDate;
|
|
@Schema(description = "预约时间段", requiredMode = Schema.RequiredMode.REQUIRED)
|
@NotNull(message = "预约时间段不能为空")
|
private Integer bookTimeslot;
|
|
@Schema(description = "预约检查类型", example = "1")
|
private Integer bookCheckType;
|
|
/** 【已停用】排队号统一为 seqNum(见下);本字段仅保留以兼容老调用方,新代码请勿赋值 */
|
@Schema(description = "预约序号(已停用,请用 seqNum)", requiredMode = Schema.RequiredMode.REQUIRED)
|
//@NotNull(message = "预约序号不能为空")
|
private Integer bookSeqNum;
|
|
@Schema(description = "是否VIP", requiredMode = Schema.RequiredMode.REQUIRED)
|
//@NotNull(message = "是否VIP")
|
private Integer isVip;
|
|
/** 排队号:签到时按 check_type.seq_rule 分配一次,之后不再改动 */
|
@Schema(description = "排队序号", requiredMode = Schema.RequiredMode.REQUIRED)
|
@NotNull(message = "排队序号不能为空")
|
private Integer seqNum;
|
|
@Schema(description = "5:过号 10:排队中 15:已召回 20:候诊准备 30:就诊中 40:就诊完成 ", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
|
@NotNull(message = "5:过号 10:排队中 15:已召回 20:候诊准备 30:就诊中 40:就诊完成 不能为空")
|
private Integer status;
|
|
@Schema(description = "过号标记", requiredMode = Schema.RequiredMode.REQUIRED)
|
@NotNull(message = "过号标记不能为空")
|
private Byte passed;
|
|
@Schema(description = "预约过期标记", requiredMode = Schema.RequiredMode.REQUIRED)
|
@NotNull(message = "预约过期标记不能为空")
|
private Byte expired;
|
|
private Integer affinityItem;
|
|
@Schema(description = "诊室编号")
|
private Long roomId;
|
|
@Schema(description = "诊室名称")
|
private String roomName;
|
|
@Schema(description = "诊疗床编号")
|
private String bedNo;
|
|
/**
|
* 加急/插队标记:1=加急(排队时优先),其余/空=常规。
|
* <p>
|
* 来源:HIS 报文 {@code observationRequest.zdy.jjbz}(N=常规,J=加急)
|
* → 预约记录 {@code appointment.jjbz} → 预约确认时带入排队。
|
* 与人工插队({@code QueueServiceImpl#patientJump})共用该字段。
|
* <p>
|
* 【号统一后】排队号在签到时一次性定死、之后不再改动,加急**不再靠改号/插队重编号**,
|
* 而是靠排序:分流取人、叫号取人以及工作台/诊间屏/大屏列表均为
|
* {@code jump_flag desc 优先 → seq_num 升序},因此置 1 即实现"加急优先"。
|
*/
|
@Schema(description = "加急标记 1=加急")
|
private Byte jumpFlag;
|
|
/**
|
* 是否床边(需求2)。来源 HIS 报文 {@code observationRequest.zdy.ISCB}(0=否,1=是)
|
* → 预约记录 {@code appointment.is_bedside} → 预约确认时带入排队。
|
* <p>
|
* 与「检查类型」的区别:{@code check_type.value=1000} 是"床边心电图"这个**项目**,
|
* 而本字段表达**同一项目、患者需到床边做**这一属性。
|
*/
|
@Schema(description = "是否床边 0=否 1=是", example = "0")
|
private String isBedside;
|
}
|