package com.openhis.yb.dto;

import java.math.BigDecimal;
import java.util.Date;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;

import org.hibernate.validator.constraints.Length;

import com.alibaba.fastjson2.annotation.JSONField;
import com.fasterxml.jackson.annotation.JsonFormat;

import lombok.Data;
import lombok.experimental.Accessors;

/**
 * 【3101】输入-处方（医嘱）信息（节点标识：fsi_order_dtos）
 * 
 * @author Thanking
 */
@Data
@Accessors(chain = true)
public class Yb3101InputFsiOrderDto {

    /**
     * 处方(医嘱)标识：处方(医嘱)记录唯一ID
     */
    @NotBlank
    @Length(max = 50)
    @JSONField(name = "rx_id")
    private String rxId;

    /**
     * 处方号
     */
    @NotBlank
    @Length(max = 20)
    @JSONField(name = "rxno")
    private String rxno;

    /**
     * 组编号
     */
    @Length(max = 20)
    @JSONField(name = "grpno")
    private String grpno;

    /**
     * 是否为长期医嘱：[1=是,0=否]
     */
    @NotBlank
    @Length(max = 3)
    @JSONField(name = "long_drord_flag")
    private String longDrordFlag;

    /**
     * 目录类别：参考字典表
     */
    @NotBlank
    @Length(max = 3)
    @JSONField(name = "hilist_type")
    private String hilistType;

    /**
     * 收费类别：参考字典表
     */
    @NotBlank
    @Length(max = 3)
    @JSONField(name = "chrg_type")
    private String chrgType;

    /**
     * 医嘱行为：参考字典表
     */
    @NotBlank
    @Length(max = 3)
    @JSONField(name = "drord_bhvr")
    private String drordBhvr;

    /**
     * 医保目录代码：国家统一标准编码
     */
    @NotBlank
    @Length(max = 20)
    @JSONField(name = "hilist_code")
    private String hilistCode;

    /**
     * 医保目录名称：国家统一标准名称
     */
    @NotBlank
    @Length(max = 50)
    @JSONField(name = "hilist_name")
    private String hilistName;

    /**
     * 医保目录(药品)剂型：国家统一标准药品剂型
     */
    @Length(max = 50)
    @JSONField(name = "hilist_dosform")
    private String hilistDosform;

    /**
     * 医保目录等级
     */
    @NotBlank
    @Length(max = 3)
    @JSONField(name = "hilist_lv")
    private String hilistLv;

    /**
     * 医保目录价格
     */
    @NotNull
    @JSONField(name = "hilist_pric")
    private BigDecimal hilistPric;

    /**
     * 一级医院目录价格
     */
    @JSONField(name = "lv1_hosp_item_pric")
    private BigDecimal lv1HospItemPric;

    /**
     * 二级医院目录价格
     */
    @JSONField(name = "lv2_hosp_item_pric")
    private BigDecimal lv2HospItemPric;

    /**
     * 三级医院目录价格
     */
    @JSONField(name = "lv3_hosp_item_pric")
    private BigDecimal lv3HospItemPric;

    /**
     * 医保目录备注
     */
    @Length(max = 200)
    @JSONField(name = "hilist_memo")
    private String hilistMemo;

    /**
     * 医院目录代码
     */
    @NotBlank
    @Length(max = 20)
    @JSONField(name = "hosplist_code")
    private String hosplistCode;

    /**
     * 医院目录名称
     */
    @NotBlank
    @Length(max = 50)
    @JSONField(name = "hosplist_name")
    private String hosplistName;

    /**
     * 医院目录(药品)剂型
     */
    @Length(max = 20)
    @JSONField(name = "hosplist_dosform")
    private String hosplistDosform;

    /**
     * 数量
     */
    @NotNull
    @JSONField(name = "cnt")
    private BigDecimal cnt;

    /**
     * 单价
     */
    @NotNull
    @JSONField(name = "pric")
    private BigDecimal pric;

    /**
     * 总费用
     */
    @NotNull
    @JSONField(name = "sumamt")
    private BigDecimal sumamt;

    /**
     * 自费金额
     */
    @NotNull
    @JSONField(name = "ownpay_amt")
    private BigDecimal ownpayAmt;

    /**
     * 自付金额
     */
    @NotNull
    @JSONField(name = "selfpay_amt")
    private BigDecimal selfpayAmt;

    /**
     * 规格：例如：0.25g×12片/盒
     */
    @NotBlank
    @Length(max = 100)
    @JSONField(name = "spec")
    private String spec;

    /**
     * 数量单位：例如：盒
     */
    @NotBlank
    @Length(max = 20)
    @JSONField(name = "spec_unt")
    private String specUnt;

    /**
     * 医嘱开始日期：格式：yyyy-MM-dd HH:mm:ss
     */
    @NotNull
    @JSONField(name = "drord_begn_date")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date drordBegnDate;

    /**
     * 医嘱停止日期：格式：yyyy-MM-dd HH:mm:ss
     */
    @JSONField(name = "drord_stop_date")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private String drordStopDate;

    /**
     * 下达医嘱的科室标识
     */
    @NotBlank
    @Length(max = 30)
    @JSONField(name = "drord_dept_codg")
    private String drordDeptCodg;

    /**
     * 下达医嘱科室名称
     */
    @NotBlank
    @Length(max = 50)
    @JSONField(name = "drord_dept_name")
    private String drordDeptName;

    /**
     * 开处方(医嘱)医生标识
     */
    @NotBlank
    @Length(max = 30)
    @JSONField(name = "drord_dr_codg")
    private String drordDrCodg;

    /**
     * 开处方(医嘱)医生姓名
     */
    @NotBlank
    @Length(max = 30)
    @JSONField(name = "drord_dr_name")
    private String drordDrName;

    /**
     * 开处方(医嘱)医职称：参考字典表
     */
    @NotBlank
    @Length(max = 3)
    @JSONField(name = "drord_dr_profttl")
    private String drordDrProfttl;

    /**
     * 是否当前处方(医嘱)：本次处方(医嘱)标记[1=是,0=否]
     */
    @NotBlank
    @Length(max = 3)
    @JSONField(name = "curr_drord_flag")
    private String currDrordFlag;

}
