package com.xinelu.manage.dto.manualfollowup;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.xinelu.common.annotation.Excel;
import com.xinelu.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModelProperty;
import java.time.LocalDate;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import org.springframework.format.annotation.DateTimeFormat;

/**
 * 人工随访查询DTO
 *
 * @author : youxilong
 * @date : 2024/4/2 10:36
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
@EqualsAndHashCode(callSuper = true)
public class ManualFollowUpDTO extends BaseEntity {
    private static final long serialVersionUID = 1L;

    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @ApiModelProperty(value = "随访开始时间")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private LocalDate followStartTime;

    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @ApiModelProperty(value = "随访结束时间")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private LocalDate followEndTime;

    @ApiModelProperty(value = "患者姓名")
    private String patientName;

    @ApiModelProperty(value = "患者电话")
    private String patientPhone;

    @ApiModelProperty(value = "所属医院id")
    private Long hospitalAgencyId;

    @ApiModelProperty(value = "所属院区id")
    private Long campusAgencyId;

    @ApiModelProperty(value = "所属科室id")
    private Long departmentId;

    @ApiModelProperty(value = "所属病区id")
    private Long wardId;

    @ApiModelProperty(value = "就诊方式，门诊：OUTPATIENT_SERVICE，住院：BE_IN_HOSPITAL")
    private String visitMethod;

    @ApiModelProperty(value = "就诊流水号")
    private String visitSerialNumber;

    @ApiModelProperty(value = "主要诊断")
    private String mainDiagnosis;

    @ApiModelProperty(value = "主治医生id")
    private Long attendingPhysicianId;

    @ApiModelProperty(value = "主治医生姓名")
    private String attendingPhysicianName;

    @ApiModelProperty(value = "节点任务执行状态，已执行：EXECUTED，未执行：UNEXECUTED")
    private String nodeExecuteStatus;

    @ApiModelProperty(value = "任务名称")
    private String manageRouteName;

    /**
     * 时间标识 whole：全部  today：今天及今天之前
     */
    private String timeSign;

    private String phoneNodeExecuteResultStatus;

	/**
	 * AI：自动 或  COMMON：手动
	 */
	@ApiModelProperty(value = "AI：自动 或  COMMON：手动")
	private String phoneDialMethod;

    /** 任务执行类型（批量还是单个执行） */
    @ApiModelProperty(value = "任务执行类型（批量还是单个执行，'批量任务：BATCH_TASK,单个实时拔打任务：ACTUAL_TIME_TASK'）")
    private String taskExcuteType;

    @ApiModelProperty(value = "任务节点类型，电话外呼：PHONE_OUTBOUND，问卷量表：QUESTIONNAIRE_SCALE，宣教文章：PROPAGANDA_ARTICLE，文字提醒：TEXT_REMIND")
    private String taskNodeType;

    private Long phonePushSign;
}
