package com.yihu.jw.restmodel.hospital.prescription;

import com.yihu.jw.entity.hospital.prescription.WlyyInspectionDO;
import com.yihu.jw.entity.hospital.prescription.WlyyPrescriptionEmrDO;
import com.yihu.jw.restmodel.UuidIdentityVOWithOperator;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.springframework.beans.factory.annotation.Autowired;

import java.util.Date;
import java.util.List;


/**
 * 
 * 在线处方主表vo
 * 
 * @version 
 * <pre>
 * Author	Version		Date		Changes
 * Administrator 	1.0  2019年05月16日 Created
 *
 * </pre>
 * @since 1.
 */
@ApiModel(value = "WlyyPrescriptionVO", description = "在线处方主表")
public class WlyyPrescriptionVO extends UuidIdentityVOWithOperator {

    /**
     * 门诊记录说
     */
    @ApiModelProperty(value = "门诊记录说", example = "模块1")
    private String outpatientId;
    /**
     * HIS处方code（开方成功后返回）
     */
    @ApiModelProperty(value = "HIS处方code（开方成功后返回）", example = "模块1")
    private String realOrder;

    /**
     * his原始处方号
     */
    @ApiModelProperty(value = "his原始处方号", example = "模块1")
    private String originRealOrder;

    /**
     * 就诊编号
     */
    @ApiModelProperty(value = "就诊编号", example = "模块1")
    private String admNo;

    /**
     * 原始就诊记录唯一编码
     */
    @ApiModelProperty(value = "原始就诊记录唯一编码", example = "模块1")
    private String originAdmNo;

    /**
     * 挂号流水号
     */
    @ApiModelProperty(value = "挂号流水号", example = "模块1")
    private String serialNo;

    @ApiModelProperty(value = "原始挂号流水号", example = "模块1")
    private String originSerialNo;

    /**
     * 1 处方 2 续方
     */
    @ApiModelProperty(value = "1 处方 2 续方", example = "模块1")
    private Integer type;

    /**
     * 关联 居民表 code
     */
    @ApiModelProperty(value = "关联 居民表 code", example = "模块1")
    private String patientCode;

    /**
     * 患者名称
     */
    @ApiModelProperty(value = "患者名称", example = "模块1")
    private String patientName;

    /**
     * 居民身份证号
     */
    @ApiModelProperty(value = "居民身份证号", example = "模块1")
    private String idcard;

    @ApiModelProperty(value = "居民就诊卡", example = "模块1")
    private String cardNo;

    /**
     * 社保卡号
     */
    @ApiModelProperty(value = "社保卡号", example = "模块1")
    private String ssc;

    /**
     * 开处方的医生code 关联 wlyy_doctor
     */
    @ApiModelProperty(value = "开处方的医生code 关联 wlyy_doctor", example = "模块1")
    private String doctor;

    /**
     * 开处方的医生名称
     */
    @ApiModelProperty(value = "开处方的医生名称", example = "模块1")
    private String doctorName;

    /**
     * （-3 支付过期 -2 患者自己取消 ）续方取消，-1 审核不通过 ,（0 待审核, 2调整中，3调整成功, 4调整失败 ,10 医生审核(CA)通过）审核中，20药师审核中,21.药师审核失败,30 开方中/药师审核成功,31.开方失败/预结算失败,（40开方完成/待支付 ，41 支付失败 ）待支付，  50 支付成功/待配药，（60配药成功/待配送）等待领药，（61配送失败62分配健管师 65配送中，69配送到服务站）配送中，（100配送到患者手中/已完成）已完成
     */
    @ApiModelProperty(value = "（-3 支付过期 -2 患者自己取消 ）续方取消，-1 审核不通过 ,（0 待审核, 2调整中，3调整成功, 4调整失败 ,10 医生审核(CA)通过）审核中，20药师审核中,21.药师审核失败,30 开方中/药师审核成功,31.开方失败/预结算失败,（40开方完成/待支付 ，41 支付失败 ）待支付，  50 支付成功/待配药，（60配药成功/待配送）等待领药，（61配送失败62分配健管师 65配送中，69配送到服务站）配送中，（100配送到患者手中/已完成）已完成", example = "模块1")
    private Integer status;

    /**
     * 美康审方失败原因
     */
    @ApiModelProperty(value = "美康审方失败原因", example = "模块1")
    private String mkFailReason;

    /**
     * 美康审方失败时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+08:00")
    @ApiModelProperty(value = "美康审方失败时间", example = "模块1")
    private Date mkTime;

    /**
     * 开方成功时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+08:00")
    @ApiModelProperty(value = "开方成功时间", example = "模块1")
    private Date prescribeTime;

    /**
     * 开方失败原因
     */
    @ApiModelProperty(value = "开方失败原因", example = "模块1")
    private String prescribeReason;

    /**
     * 支付时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+08:00")
    @ApiModelProperty(value = "支付时间", example = "模块1")
    private Date payTime;

    /**
     * 配药完成时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+08:00")
    @ApiModelProperty(value = "配药完成时间", example = "模块1")
    private Date dosageTime;

    /**
     * 配送员确认送达或居民确认取药的时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+08:00")
    @ApiModelProperty(value = "配送员确认送达或居民确认取药的时间", example = "模块1")
    private Date finishTime;

    /**
     * 处方创建时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+08:00")
    @ApiModelProperty(value = "处方创建时间", example = "模块1")
    private Date createTime;

    /**
     * 开处方的科室code
     */
    @ApiModelProperty(value = "开处方的科室code", example = "模块1")
    private String dept;

    /**
     * 开处方的科室名称
     */
    @ApiModelProperty(value = "开处方的科室名称", example = "模块1")
    private String deptName;

    /**
     * 开处方的医院 关联 dm_hospital code
     */
    @ApiModelProperty(value = "开处方的医院 关联 dm_hospital code", example = "模块1")
    private String hospital;

    /**
     * 开处方的医院 关联 dm_hospital name
     */
    @ApiModelProperty(value = "开处方的医院 关联 dm_hospital name", example = "模块1")
    private String hospitalName;

    /**
     * 咨询id 1对1
     */
    @ApiModelProperty(value = "咨询id 1对1", example = "模块1")
    private String consult;

    /**
     * 取药类型:1 自取 2快递配送
     */
    @ApiModelProperty(value = "取药类型:1 自取 2快递配送 ", example = "模块1")
    private Integer dispensaryType;

    /**
     * 续方原因
     */
    @ApiModelProperty(value = "续方原因", example = "模块1")
    private String reason;

    @ApiModelProperty(value = "疾病图片", example = "模块1")
    private String diseaseImg;

    /**
     * 处方备注
     */
    @ApiModelProperty(value = "处方备注", example = "模块1")
    private String remark;

    /**
     * 医生取消续方原因
     */
    @ApiModelProperty(value = "医生取消续方原因", example = "模块1")
    private String cancelReason;

    /**
     * ca加密信息
     */
    @ApiModelProperty(value = "ca加密信息", example = "模块1")
    private String caCertData;

    /**
     * ca指纹信息
     */
    @ApiModelProperty(value = "ca指纹信息", example = "模块1")
    private String caMessage;

    /**
     * CA数字签名唯一流水号
     */
    @ApiModelProperty(value = "CA数字签名唯一流水号", example = "模块1")
    private String digitalSignNo;

    /**
     * 原文的MD5摘要
     */
    @ApiModelProperty(value = "原文的MD5摘要", example = "模块1")
    private String originalDataAbstract;

    /**
     * CA原文数据
     */
    @ApiModelProperty(value = "CA原文数据", example = "模块1")
    private String strOriginalData;

    /**
     * his-开处方的科室编码
     */
    @ApiModelProperty(value = "his-开处方的科室编码", example = "模块1")
    private String hisDeptCode;

    /**
     * his-开方医生的编码
     */
    @ApiModelProperty(value = "his-开方医生的编码", example = "模块1")
    private String hisDoctorCode;

    /**
     * his-挂号类型编码
     */
    @ApiModelProperty(value = "his-挂号类型编码", example = "模块1")
    private String hisGisterTypeCode;

    /**
     * his-费别类型编码
     */
    @ApiModelProperty(value = "his-费别类型编码", example = "模块1")
    private String hisRateTypeCode;

    /**
     * his-医院编码
     */
    @ApiModelProperty(value = "his-医院编码", example = "模块1")
    private String hisHospital;

    /**
     * his-挂号费用
     */
    @ApiModelProperty(value = "his-挂号费用", example = "模块1")
    private Integer hisRegisterFee;


    @ApiModelProperty(value = "订单号",example = "订单号")
    private String orderNo;

    @ApiModelProperty(value = "订单id",example = "订单号")
    private String orderId;

    /**
     * 处方结算状态，0为未结算，1为结算成功，默认为0
     */
    @ApiModelProperty(value = "处方结算状态，0为未结算，1为结算成功，默认为0", example = "模块1")
    private Integer payStatus;

    @ApiModelProperty(value = "关联诊断实体", example = "模块1")
    List<WlyyPrescriptionDiagnosisVO> diagnosisVOs;

    @ApiModelProperty(value = "关联药品实体", example = "模块1")
    List<WlyyPrescriptionInfoVO> infoVOs;

    @ApiModelProperty(value = "关联物流实体", example = "模块1")
    WlyyPrescriptionExpressageVO expressage;

    @ApiModelProperty(value = "发药医生/审方医生", example = "模块1")
    private String dispUser;

    @ApiModelProperty(value = "发药医生/审方医生 姓名", example = "模块1")
    private String dispUserName;

    @ApiModelProperty(value = "发药时间", example = "模块1")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+08:00")
    private Date dispDate;

    /**
     * 审核状态0未审核1审核退回4审核通过
     */
    @ApiModelProperty(value = "审核状态", example = "模块1")
    private Integer checkStatus;

    /**
     * 审方原因
     */
    @ApiModelProperty(value = "审方原因", example = "模块1")
    private String checkReason;

    /**
     * 处理状态 1处方修改2执行处方
     */
    @ApiModelProperty(value = "处理状态", example = "模块1")
    private Integer dealStatus;

    /**
     * 处理原因
     */
    @ApiModelProperty(value = "处理原因", example = "模块1")
    private String dealReason;

    /**
     * 年龄
     */
    @ApiModelProperty(value = "年龄", example = "模块1")
    private String age;//年龄

    /**
     * 性别
     */
    @ApiModelProperty(value = "性别", example = "模块1")
    private String sex;//性别

    /**
     * 付款方式0自费1医保
     */
    @ApiModelProperty(value = "付款方式", example = "模块1")
    private Integer payType;


    @ApiModelProperty(value = "检查检验", example = "模块1")
    private List<WlyyInspectionVO> inspectionVOs;

    @ApiModelProperty(value = "电子病历", example = "模块1")
    private WlyyPrescriptionEmrDO wlyyPrescriptionEmrDO;


    /**
     * 是否自取 1是 0否
     */
    @ApiModelProperty(value = "取货方式", example = "模块1")
    private Integer oneselfPickupFlg;


    @ApiModelProperty(value = "药品总价，单位元", example = "模块1")
    private Double drugFee;


    @ApiModelProperty(value = "检查检验总价，单位元", example = "模块1")
    private Double inspectFee;

    @ApiModelProperty(value = "诊查费，单位元", example = "模块1")
    private Double regFee;

    @ApiModelProperty(value = "医生职称code", example = "模块1")
    private String jobTitleCode;

    @ApiModelProperty(value = "医生职称名称", example = "模块1")
    private String jobTitleName;
    @ApiModelProperty(value = "单据号", example = "模块1")
    private String voucherNo;

    public String getVoucherNo() {
        return voucherNo;
    }

    public void setVoucherNo(String voucherNo) {
        this.voucherNo = voucherNo;
    }

    public Double getDrugFee() {
        return drugFee;
    }

    public void setDrugFee(Double drugFee) {
        this.drugFee = drugFee;
    }

    public Double getInspectFee() {
        return inspectFee;
    }

    public void setInspectFee(Double inspectFee) {
        this.inspectFee = inspectFee;
    }

    public Double getRegFee() {
        return regFee;
    }

    public void setRegFee(Double regFee) {
        this.regFee = regFee;
    }

    public String getJobTitleCode() {
        return jobTitleCode;
    }

    public void setJobTitleCode(String jobTitleCode) {
        this.jobTitleCode = jobTitleCode;
    }

    public String getJobTitleName() {
        return jobTitleName;
    }

    public void setJobTitleName(String jobTitleName) {
        this.jobTitleName = jobTitleName;
    }

    public Integer getOneselfPickupFlg() {
        return oneselfPickupFlg;
    }

    public void setOneselfPickupFlg(Integer oneselfPickupFlg) {
        this.oneselfPickupFlg = oneselfPickupFlg;
    }

    public String getOutpatientId() {
        return outpatientId;
    }

    public void setOutpatientId(String outpatientId) {
        this.outpatientId = outpatientId;
    }

    public String getRealOrder() {
        return realOrder;
    }
    public void setRealOrder(String realOrder) {
        this.realOrder = realOrder;
    }

    public String getOriginRealOrder() {
        return originRealOrder;
    }
    public void setOriginRealOrder(String originRealOrder) {
        this.originRealOrder = originRealOrder;
    }

    public String getAdmNo() {
        return admNo;
    }
    public void setAdmNo(String admNo) {
        this.admNo = admNo;
    }

    public String getOriginAdmNo() {
        return originAdmNo;
    }
    public void setOriginAdmNo(String originAdmNo) {
        this.originAdmNo = originAdmNo;
    }

    public String getSerialNo() {
        return serialNo;
    }
    public void setSerialNo(String serialNo) {
        this.serialNo = serialNo;
    }

    public String getOriginSerialNo() {
        return originSerialNo;
    }

    public void setOriginSerialNo(String originSerialNo) {
        this.originSerialNo = originSerialNo;
    }

    public Integer getType() {
        return type;
    }
    public void setType(Integer type) {
        this.type = type;
    }

    public String getPatientCode() {
        return patientCode;
    }
    public void setPatientCode(String patientCode) {
        this.patientCode = patientCode;
    }

    public String getPatientName() {
        return patientName;
    }
    public void setPatientName(String patientName) {
        this.patientName = patientName;
    }

    public String getIdcard() {
        return idcard;
    }
    public void setIdcard(String idcard) {
        this.idcard = idcard;
    }

    public String getSsc() {
        return ssc;
    }
    public void setSsc(String ssc) {
        this.ssc = ssc;
    }

    public String getDoctor() {
        return doctor;
    }
    public void setDoctor(String doctor) {
        this.doctor = doctor;
    }

    public String getDoctorName() {
        return doctorName;
    }
    public void setDoctorName(String doctorName) {
        this.doctorName = doctorName;
    }

    public Integer getStatus() {
        return status;
    }
    public void setStatus(Integer status) {
        this.status = status;
    }

    public String getMkFailReason() {
        return mkFailReason;
    }
    public void setMkFailReason(String mkFailReason) {
        this.mkFailReason = mkFailReason;
    }

    public Date getMkTime() {
        return mkTime;
    }
    public void setMkTime(Date mkTime) {
        this.mkTime = mkTime;
    }

    public Date getPrescribeTime() {
        return prescribeTime;
    }
    public void setPrescribeTime(Date prescribeTime) {
        this.prescribeTime = prescribeTime;
    }

    public String getPrescribeReason() {
        return prescribeReason;
    }
    public void setPrescribeReason(String prescribeReason) {
        this.prescribeReason = prescribeReason;
    }

    public Date getPayTime() {
        return payTime;
    }
    public void setPayTime(Date payTime) {
        this.payTime = payTime;
    }

    public Date getDosageTime() {
        return dosageTime;
    }
    public void setDosageTime(Date dosageTime) {
        this.dosageTime = dosageTime;
    }

    public Date getFinishTime() {
        return finishTime;
    }
    public void setFinishTime(Date finishTime) {
        this.finishTime = finishTime;
    }

    public Date getCreateTime() {
        return createTime;
    }
    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }

    public String getDept() {
        return dept;
    }
    public void setDept(String dept) {
        this.dept = dept;
    }

    public String getDeptName() {
        return deptName;
    }
    public void setDeptName(String deptName) {
        this.deptName = deptName;
    }

    public String getHospital() {
        return hospital;
    }
    public void setHospital(String hospital) {
        this.hospital = hospital;
    }

    public String getHospitalName() {
        return hospitalName;
    }
    public void setHospitalName(String hospitalName) {
        this.hospitalName = hospitalName;
    }

    public String getConsult() {
        return consult;
    }
    public void setConsult(String consult) {
        this.consult = consult;
    }

    public Integer getDispensaryType() {
        return dispensaryType;
    }
    public void setDispensaryType(Integer dispensaryType) {
        this.dispensaryType = dispensaryType;
    }

    public String getReason() {
        return reason;
    }
    public void setReason(String reason) {
        this.reason = reason;
    }

    public String getRemark() {
        return remark;
    }
    public void setRemark(String remark) {
        this.remark = remark;
    }

    public String getCancelReason() {
        return cancelReason;
    }
    public void setCancelReason(String cancelReason) {
        this.cancelReason = cancelReason;
    }

    public String getCaCertData() {
        return caCertData;
    }
    public void setCaCertData(String caCertData) {
        this.caCertData = caCertData;
    }

    public String getCaMessage() {
        return caMessage;
    }
    public void setCaMessage(String caMessage) {
        this.caMessage = caMessage;
    }

    public String getDigitalSignNo() {
        return digitalSignNo;
    }
    public void setDigitalSignNo(String digitalSignNo) {
        this.digitalSignNo = digitalSignNo;
    }

    public String getOriginalDataAbstract() {
        return originalDataAbstract;
    }
    public void setOriginalDataAbstract(String originalDataAbstract) {
        this.originalDataAbstract = originalDataAbstract;
    }

    public String getStrOriginalData() {
        return strOriginalData;
    }
    public void setStrOriginalData(String strOriginalData) {
        this.strOriginalData = strOriginalData;
    }

    public String getHisDeptCode() {
        return hisDeptCode;
    }
    public void setHisDeptCode(String hisDeptCode) {
        this.hisDeptCode = hisDeptCode;
    }

    public String getHisDoctorCode() {
        return hisDoctorCode;
    }
    public void setHisDoctorCode(String hisDoctorCode) {
        this.hisDoctorCode = hisDoctorCode;
    }

    public String getHisGisterTypeCode() {
        return hisGisterTypeCode;
    }
    public void setHisGisterTypeCode(String hisGisterTypeCode) {
        this.hisGisterTypeCode = hisGisterTypeCode;
    }

    public String getHisRateTypeCode() {
        return hisRateTypeCode;
    }
    public void setHisRateTypeCode(String hisRateTypeCode) {
        this.hisRateTypeCode = hisRateTypeCode;
    }

    public String getHisHospital() {
        return hisHospital;
    }
    public void setHisHospital(String hisHospital) {
        this.hisHospital = hisHospital;
    }

    public Integer getHisRegisterFee() {
        return hisRegisterFee;
    }
    public void setHisRegisterFee(Integer hisRegisterFee) {
        this.hisRegisterFee = hisRegisterFee;
    }

    public Integer getPayStatus() {
        return payStatus;
    }
    public void setPayStatus(Integer payStatus) {
        this.payStatus = payStatus;
    }

    public List<WlyyPrescriptionDiagnosisVO> getDiagnosisVOs() {
        return diagnosisVOs;
    }

    public void setDiagnosisVOs(List<WlyyPrescriptionDiagnosisVO> diagnosisVOs) {
        this.diagnosisVOs = diagnosisVOs;
    }

    public List<WlyyPrescriptionInfoVO> getInfoVOs() {
        return infoVOs;
    }

    public void setInfoVOs(List<WlyyPrescriptionInfoVO> infoVOs) {
        this.infoVOs = infoVOs;
    }

    public String getDiseaseImg() {
        return diseaseImg;
    }

    public void setDiseaseImg(String diseaseImg) {
        this.diseaseImg = diseaseImg;
    }

    public WlyyPrescriptionExpressageVO getExpressage() {
        return expressage;
    }

    public void setExpressage(WlyyPrescriptionExpressageVO expressage) {
        this.expressage = expressage;
    }

    public String getDispUser() {
        return dispUser;
    }

    public void setDispUser(String dispUser) {
        this.dispUser = dispUser;
    }

    public String getDispUserName() {
        return dispUserName;
    }

    public void setDispUserName(String dispUserName) {
        this.dispUserName = dispUserName;
    }

    public Date getDispDate() {
        return dispDate;
    }

    public void setDispDate(Date dispDate) {
        this.dispDate = dispDate;
    }

    public String getCardNo() {
        return cardNo;
    }

    public void setCardNo(String cardNo) {
        this.cardNo = cardNo;
    }

    public List<WlyyInspectionVO> getInspectionVOs() {
        return inspectionVOs;
    }

    public void setInspectionVOs(List<WlyyInspectionVO> inspectionVOs) {
        this.inspectionVOs = inspectionVOs;
    }

    public String getOrderNo() {
        return orderNo;
    }

    public void setOrderNo(String orderNo) {
        this.orderNo = orderNo;
    }

    public String getOrderId() {
        return orderId;
    }

    public void setOrderId(String orderId) {
        this.orderId = orderId;
    }

    public Integer getCheckStatus() {
        return checkStatus;
    }

    public void setCheckStatus(Integer checkStatus) {
        this.checkStatus = checkStatus;
    }

    public String getCheckReason() {
        return checkReason;
    }

    public void setCheckReason(String checkReason) {
        this.checkReason = checkReason;
    }

    public Integer getDealStatus() {
        return dealStatus;
    }

    public void setDealStatus(Integer dealStatus) {
        this.dealStatus = dealStatus;
    }

    public String getDealReason() {
        return dealReason;
    }

    public void setDealReason(String dealReason) {
        this.dealReason = dealReason;
    }

    public String getAge() {
        return age;
    }

    public void setAge(String age) {
        this.age = age;
    }

    public String getSex() {
        return sex;
    }

    public void setSex(String sex) {
        this.sex = sex;
    }

    public Integer getPayType() {
        return payType;
    }

    public void setPayType(Integer payType) {
        this.payType = payType;
    }

    public WlyyPrescriptionEmrDO getWlyyPrescriptionEmrDO() {
        return wlyyPrescriptionEmrDO;
    }

    public void setWlyyPrescriptionEmrDO(WlyyPrescriptionEmrDO wlyyPrescriptionEmrDO) {
        this.wlyyPrescriptionEmrDO = wlyyPrescriptionEmrDO;
    }
}